我认为这很简单,但我不知道会发生什么。我试图在Jquery中使用(on)事件来禁用按钮,当用户在选择框中选择一个选项时,按钮应该改变其状态。但是,它不起作用。这是我的Jquery代码:
$( document ).ready(function() {
$('#bOK').attr('disabled', true);
$('#GRP15').on('change', function(e) {
e.preventDefault();
if (this.value > 0){
$('#bOK').attr('disabled', false);
} else {
$('#bOK').attr('disabled', true);
}
});
});
这是我的选择框:
<select id="GRP15" name="GRP15" onchange="updateActivityTotals(true, 'G', '15', document.getElementsByName('PriceExcVAT'+this.options[this.selectedIndex].value)[0], document.getElementsByName('Price'+this.options[this.selectedIndex].value)[0]);">
<option value="0">--- Please Select ---</option>
<option value="150">28th September 2015</option>
<option value="153">29th September 2015</option>
<option value="155">30th September 2015</option>
</select>
当然,我注意到有一个内联的onchange事件,但我无法删除它,因为此事件来自系统。我认为这是问题,但我的代码有时会工作,例如,如果我使用:
$( document ).ready(function() {
$('#bOK').attr('disabled', true);
$('#GRP15').on('change', function(e) {
e.preventDefault();
alert(this.value);
});
});
此代码显示了该值,尽管有时它不起作用。 这是我的按钮:
<input type="BUTTON" class="button bOK" name="bOK" id="bOK" value="Next >" onclick="document.EVENTFORM.submit();">
有什么建议吗?请。 亲切的问候。
答案 0 :(得分:0)
您在代码中调用了两次onchange事件。一个是选择代码本身,另一个是document.ready。这就是为什么第一个jquery代码正确执行而第二个没有执行。
你应该使用一次。因此,请尝试更改updateActivityTotals
功能,如下所示:
function updateActivityTotals(a,b,c,d,e) {
//your previous code
.......
.....
// All other code also goes here
if (this.value > 0){
$('#bOK').attr('disabled', false);
} else {
$('#bOK').attr('disabled', true);
}
}