jquery验证在IE8中不起作用

Posted

技术标签:

【中文标题】jquery验证在IE8中不起作用【英文标题】:jquery validation not working in IE8 【发布时间】:2016-02-27 01:19:01 【问题描述】:

我想验证复选框,单击提交,如果选中,则控件转到文本框,否则可能会禁用。在最新的浏览器上很好,但在 IE8 和 IE9 中不起作用。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
        $(function () 
        $("#chkPassport").click(function () 
        
        if ($(this).is(":checked"))    
        $("#txtNumber").removeAttr("disabled");
        $("#txtNumber").focus();      
        
        else 
        
        $("#txtNumber").attr("disabled", "disabled");
         
        );
        );  
    </script>   
    //html follows

    <form action="Orgpaymentgateway.spring" id="orgpaymentgateway" method="post" name="orgpaymentgateway" onsubmit="return checkCheckBox(this)">
    <ul>
     <li>
       <div class="pack">
        <label for="chkPassport">
    <input type="checkbox" id="chkPassport" required  name="myPack[]" id="group_name_0" onchange="this.setCustomValidity(validity.valueMissing ? 'Please Select atleast one package ' : '');"  />
    </label>
    <br />
    <img src="images/image-sample.jpg" style="vertical-align:middle;padding:10px 40px;">
    <br />
    <input type="text" required  name="quantity[]"  onkeydown="return AllowNonZeroIntegers(event)" id="txtNumber"  placeholder="License Count" disabled="disabled"/>
     </div>
    </li>                      
    </ul>
    <div class="clearfix"></div>
    <div class="sub_but">
    <input type="submit" value="Proceed to Checkout" class="sub-btn" name="Sumbit">
    </div>
    </form>

【问题讨论】:

【参考方案1】:

Internet Explorer 旧版本无法识别所有 jquery 事件。你可以使用javascript 来制作这个。

结果 http://jsfiddle.net/svcoe2x8/2/

$(function () 
    $(document).on("click","#chkPassport",function () 
      
        if (document.getElementById('chkPassport').checked)    
            document.getElementById('txtNumber').disabled = false
            document.getElementById("txtNumber").focus();      
        
        else 
        
            document.getElementById('txtNumber').disabled = true

         
    );
);  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form action="Orgpaymentgateway.spring" id="orgpaymentgateway" method="post" name="orgpaymentgateway" onsubmit="return checkCheckBox(this)">
        <ul>
         <li>
           <div class="pack">
            <label for="chkPassport">
        <input type="checkbox" id="chkPassport" required  name="myPack[]" id="group_name_0" onchange="this.setCustomValidity(validity.valueMissing ? 'Please Select atleast one package ' : '');"  />
        </label>
        <br />
        <img src="images/image-sample.jpg" style="vertical-align:middle;padding:10px 40px;">
        <br />
        <input type="text" required  name="quantity[]"  onkeydown="return AllowNonZeroIntegers(event)" id="txtNumber"  placeholder="License Count" disabled="disabled"/>
         </div>
        </li>                      
        </ul>
        <div class="clearfix"></div>
        <div class="sub_but">
        <input type="submit" value="Proceed to Checkout" class="sub-btn" name="Sumbit">
        </div>
        </form>

【讨论】:

以上是关于jquery验证在IE8中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery *= 选择器在 IE8 中不起作用

jQuery.animate 在 IE8/IE9 上的 Facebook iFrame 中不起作用

占位符在 IE8 和 IE9 中不起作用,即使使用 jQuery 插件

jQuery .animate() marginLeft 在 IE8 及更低版本中不起作用 - 参数无效

西班牙语(ó、í 等)的 JQuery 标点符号在 IE8 中不起作用

Jquery ajax()跨域远程服务器在IE8中不起作用[重复]