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);   
  } 
}