页面重新加载上的jquery onchange事件不起作用
我正在使用jquery根据所选的下拉列表禁用其他下拉列表。 下面是代码页面重新加载上的jquery onchange事件不起作用,jquery,Jquery,我正在使用jquery根据所选的下拉列表禁用其他下拉列表。 下面是代码 <script type="text/javascript" > jQuery(function() { jQuery('select').change(function() { if(jQuery(this).val() == "A"){ jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
<script type="text/javascript" >
jQuery(function() {
jQuery('select').change(function() {
if(jQuery(this).val() == "A"){
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.attr('disabled','disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.removeAttr('disabled');
} else if(jQuery(this).val() == "R"){
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.attr('disabled','disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.attr('disabled','disabled');
}else{
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.removeAttr('disabled');
}
})
})
</script>
jQuery(函数(){
jQuery('select').change(函数(){
if(jQuery(this).val()=“A”){
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.attr('disabled','disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.removeAttr(“禁用”);
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.removeAttr(“禁用”);
}else if(jQuery(this).val()=“R”){
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.removeAttr(“禁用”);
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.attr('disabled','disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.attr('disabled','disabled');
}否则{
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.removeAttr(“禁用”);
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.removeAttr(“禁用”);
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.removeAttr(“禁用”);
}
})
})
因此,页面重新加载后,禁用的字段将再次启用,但选择将禁用这些字段
请帮忙
谢谢
Sanket您还应将您的条件写入页面加载函数,以获得页面刷新的效果:
$(document).on("pageload",function(){
//add here logic related to get currently selected value from dropdown and make
other tags disable as per your requirement
});
如果您遇到任何问题,请告诉我。在页面加载时,您需要检查下拉列表的值,就像更改下拉列表时一样 这是因为,尽管服务器端代码会保留下拉列表的选定值,但不会保留在客户端设置的控件的禁用状态。网页本质上是无状态的,任何没有显式保存的更改都将在刷新页面时被销毁 您可以轻松地重复使用现有代码来执行此操作:
jQuery(function() {
setEnabledDisabled(jQuery('select').val()); //runs at page load
jQuery('select').change(function() {
setEnabledDisabled(jQuery(this).val());
});
//re-usable function to implement the logic
function setEnabledDisabled(val);
if(val == "A"){
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.attr('disabled','disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.removeAttr('disabled');
} else if(val == "R"){
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.attr('disabled','disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.attr('disabled','disabled');
}else{
jQuery(document.getElementById('dataForm:listView:filterId:field10value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field4value1'))
.removeAttr('disabled');
jQuery(document.getElementById('dataForm:listView:filterId:field6value1'))
.removeAttr('disabled');
}
}
});
另外,作为补充说明,我强烈建议升级您的jQuery版本-在撰写本文时,1.3已经超过8年(2009年发布)。从那时起,已经有了许多错误修复和增强,以及支持更新浏览器和功能的更改,您可能希望利用这些更改。1.12.4是1.x分支的最新版本,于2016年5月发布。如果您不再需要支持旧版本的IE,您可以转到2.x分支,这将减少下载量,但不会引入兼容性问题。3.x进行了一些突破性的更改,需要进行更彻底的测试。执行此操作-在Pageload上,即在Document Ready上,将使用默认的选择调用函数run_your_rules($val)
$(document).ready(function(){
var $this = $('select');
var $val=$this.val();
run_your_rules($val);
$this.on('change',function(e) {
run_your_rules($(this).val());
});
function run_your_rules($val){
if($val==="A"){
console.log("disable A");
}else if($val==="B"){
console.log("disable B");
}
}
})
你介意编辑你的帖子,这样水平滚动条就会消失吗?这样好吗now@reporter你觉得这样看起来好多了吗?你试过
$('select').val('Default value')).trigger('change')代码>加载文档后?它基本上会做什么…您能提供一个示例或一些链接吗