繁体   English   中英

Jquery复选框更改功能在IE 8中不起作用

[英]Jquery check box change function not working in IE 8

我有以下jquery代码,点击一个复选框,我将显示一个弹出值。

除了在IE中,在所有其他浏览器中它按预期工作。 也就是说,在更改时,将选中复选框并打开弹出窗口。

但是在IE8中它没有被检查,但弹出窗口正确显示。

代码:

$('#TAndC').change(function(){

    if( $('input[name="TAndC"]').is(':checked')) 
    {
         $('#TandCBox').show();
         var termsandcondition = GetEnum().TermsandConditionsPageId;
         var actionURL = '@Url.Action("ShowTAndC", "Account", new { isFromCheckBox = true })';
         $('.popUpForm').load(actionURL);
         var msgBox = $('#terms').attr('href');
         MaskMsgPopUp(msgBox);
         return false;
     }
});

如果您的元素是一个checkbox而不是一个dropdown则仍然使用click

如果您的选择器指的是dropdown click是否需要支持IE8及更早版本。

看看为什么会在下面。

根据更改/ onchangeMSDN ,在提交更改之前不会触发事件。

此外,以编程方式更改值时也不会触发事件。

报价:

提交内容时(而不是值更改时)触发此事件。 例如,在文本框中,在用户键入时不会触发此事件,而是在用户通过保留具有焦点的文本框提交更改时触发。 此外,当控件也失去焦点时,此事件在onblur指定的代码之前执行。 当以编程方式更改选定对象的选定选项时,不会触发onchange事件。 已提交更改的文本选择。

要调用此事件,请执行以下操作之一:

  • 使用鼠标或键盘导航在选择对象中选择其他选项。
  • 更改文本区域中的文本,然后导航到对象之外。

如果您必须支持IE8及更早版本,那么您最好使用click事件,而不是当您释放鼠标并且选择了新选项时触发了该事件。

而不是.change使用下面的代码并尝试

$(document).ready(function(){

$(document).on('click','#TAndC',click_function){

 if( $('input[name="TAndC"]').is(':checked')) 
 {
      $('#TandCBox').show();
      var termsandcondition = GetEnum().TermsandConditionsPageId;
      var actionURL = '@Url.Action("ShowTAndC", "Account", new { isFromCheckBox = true })';
      $('.popUpForm').load(actionURL);
      var msgBox = $('#terms').attr('href');
      MaskMsgPopUp(msgBox);
      return false;
  }
 });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM