On Change 事件不起作用 Jquery
On Change event doesn't work Jquery
我认为这很简单,但我不知道会发生什么。我正在尝试使用 Jquery 中的 (on) 事件来禁用按钮,当用户在 select 框中选择一个选项时,按钮应更改其状态。但是,它不起作用。这是我的 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 盒子:
<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();">
有什么建议吗?请。
亲切的问候。
您在代码中调用了两次 onchange 事件。一个在 select 代码本身中,另一个在 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);
}
}
我认为这很简单,但我不知道会发生什么。我正在尝试使用 Jquery 中的 (on) 事件来禁用按钮,当用户在 select 框中选择一个选项时,按钮应更改其状态。但是,它不起作用。这是我的 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 盒子:
<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();">
有什么建议吗?请。 亲切的问候。
您在代码中调用了两次 onchange 事件。一个在 select 代码本身中,另一个在 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);
}
}