我在 jQuery 代码中绑定(bind)“加载”和“更改”。 我的目标是:在页面加载时根据逻辑禁用某些字段。
jQuery( document ).ready(function() {
//Question 34.1
jQuery('select#fever').bind('load change', function () {
var drug_reaction = jQuery(this).val();
if(drug_reaction== 1){
jQuery('input#fever_days').attr('disabled',false);
jQuery('select#character_of_fever').attr('disabled',false);
jQuery('select#evening_raise_of_temparature').attr('disabled',false);
jQuery('select#night_sweats').attr('disabled',false);
}else{
jQuery('input#fever_days').val("");
jQuery('input#fever_days').attr('disabled',true);
jQuery('select#character_of_fever').val("");
jQuery('select#character_of_fever').attr('disabled',true);
jQuery('select#evening_raise_of_temparature').val("");
jQuery('select#evening_raise_of_temparature').attr('disabled',true);
jQuery('select#night_sweats').val("");
jQuery('select#night_sweats').attr('disabled',true);
}
});
});
当我更改发烧下拉列表时,它起作用了。但是当页面加载时,我从数据库获取数据,并且此代码不起作用:
var drug_reaction = jQuery(this).val();
if(drug_reaction== 1){
jQuery('input#fever_days').attr('disabled',false);
jQuery('select#character_of_fever').attr('disabled',false);
jQuery('select#evening_raise_of_temparature').attr('disabled',false);
jQuery('select#night_sweats').attr('disabled',false);
}else{
jQuery('input#fever_days').val("");
jQuery('input#fever_days').attr('disabled',true);
jQuery('select#character_of_fever').val("");
jQuery('select#character_of_fever').attr('disabled',true);
jQuery('select#evening_raise_of_temparature').val("");
jQuery('select#evening_raise_of_temparature').attr('disabled',true);
jQuery('select#night_sweats').val("");
jQuery('select#night_sweats').attr('disabled',true);
}
最佳答案
load
事件在从 URL 加载数据的元素上触发(例如整个页面、img
元素和 iframe
元素)。
选择元素不会加载外部数据,它的任何后代也不会加载外部数据。没有加载事件。
即使有,在 ready
事件触发时它也已经加载了。
将更改事件作为 ready
事件处理程序的一部分触发。
jQuery('select#fever')
.bind('change', function () { ... })
.trigger("change");
关于javascript - jQuery 加载函数不适用于绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159351/