JQuery IE11 单选按钮选择器

JQuery IE11 radio button selector

本文关键字:选择器 单选按钮 IE11 JQuery      更新时间:2023-09-26

使用以下代码

$(".submitButton").click(function(event){
  if ($(this).hasClass("disabled")){
    event.preventDefault();
    return false;
  }
  if (!$(this).hasClass("disabled")){
    $('.invoice-form').find(':input').prop("disabled",false);
    $(".invoiceDate").prop("disabled",true);
    //event.preventDefault();
    //return false;
  }
});

在 IE11 中,提交表单时,将启用除单选按钮外的所有元素。

对此有什么想法吗?我们需要重新启用单选按钮,以便设置正确的值。它在非 IE 浏览器中按预期运行。

就个人而言,我在创建表单时会沿着 Bootstrap 路线走下去。

HTML/Bootstrap

<div class="radio">
<label><input type="radio" name="optradio">Option 1</label>
</div>
<div class="radio">
<label><input type="radio" name="optradio">Option 2</label>
</div>
<button type="submit" class="btn btn-default">
<i class="fa fa-envelope-o"></i>
Submit
</button>

尝试按如下方式编写

if($(this).hasClass("disabled)){your code}else{} 

而不是

if (!$(this)){}

如果你想要纯Java脚本,请使用下面的方法来禁用整个表单[JavaScript通常对浏览器更兼容和友好

var fields = document.getElementById("YOURDIVID").getElementsByTagName('*');
for(var i = 0; i < fields.length; i++)
{
    fields[i].disabled = true;
}

如果您坚持使用 jQuery,请使用以下内容对于 jquery 1.6+,请使用 .prop() 而不是 .attr()

$("#parent-selector :input").prop("disabled", true);

$("#parent-selector :input").attr("disabled", "disabled");

$('#mydivform').find('input, textarea, button, select').attr('disabled','disabled');

:input选择所有<input>, <select>, <textarea> and <button>元素。此外,该属性是只读的,如果您对元素使用禁用,它们将不会发布到服务器,因此请确保在提交时禁用它们。