On Change事件不起作用Jquery

时间:2015-05-14 13:55:10

标签: jquery jquery-events

我认为这很简单,但我不知道会发生什么。我试图在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();">

有什么建议吗?请。 亲切的问候。

1 个答案:

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