我正在使用動態選擇框,我使用JS/Jquery來更新每個選擇框的值。由於我從MySQL表中提取值,有時需要花費一點時間才能將選擇框加載其值。我搜索的一個解決方案是使用ajax加載器。Ajax加載器和鏈接選擇框
如何放置一個ajax加載器(就在updateSelectBox.js中的jQuery.getJSON之前),以便在第一個選項卡上加載並在成功處理後(在同一文件中)刪除它時,無法單擊任何內容?或者更好的解決方案?下面是一個EXAMPLE
updateSelectBox.js
var formObject = {
run : function(obj) {
obj.nextAll('.update').attr({'disabled': true, 'hidden':true}).html('<option value="">----</option>');
var id = obj.attr('id');
var v = obj.val();
jQuery.getJSON('mod/postfile.php', { id : id, value : v }, function(data) {
$('.update').removeClass('last');
if (!data.error) {
obj.next('.update').html(data.list).removeAttr('disabled hidden');
} else {
obj.addClass('last').nextAll('.update').attr({'disabled': true, 'hidden':true}).html('<option value="">----</option>');
}
});
}
};
$(function(){
$('.update').live('change', function() {
var str = "";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$("#postSelected").text(str);
formObject.run($(this));
});
});
HTML
<select name="gender" id="gender" class="update" size="7">
<option value="">Select one</option>
<?php if (!empty($list)) { ?>
<?php foreach($list as $row) { ?>
<option value="<?php echo $row['id']; ?>">
<?php echo $row['category_name']; ?>
</option>
<?php } ?>
<?php } ?>
</select>
<select name="category" id="category" class="update" disabled="disabled" hidden="hidden" size="7">
<option value="">----</option>
</select>
<select name="colour" id="colour" class="update" disabled="disabled" hidden="hidden" size="7">
<option value="">----</option>
</select>
嘿,我的朋友!謝謝。我試過你的代碼,似乎工作,但它導致一些CSS問題的選項卡。檢查[LINK](http://webprolearner.ueuo.com/dropdown-menu/test1.php) – CodingWonders90 2012-07-30 07:52:13
我已經修復了我的答案。 – scessor 2012-07-30 07:54:53
我已經修復了我的答案! – scessor 2012-07-30 08:01:46