2017-06-14 34 views
0

以下代码在Chrome上运行良好,可防止基于字段验证的选定单选按钮的更改,但在IE上它将取消选中所有单选按钮。IE防止更改组上的选定单选按钮

预期行为:就像在Chrome中一样,它不应该让用户通过保持被选中的单选按钮来更改所选的单选按钮,并且具有相同的选中状态。

$(document).ready(function(){ 
 
\t $("[name=group1]").on("click", function(event){ 
 
    \t var dynamicValidation = false; //mock a field validation 
 
    if (!dynamicValidation){ 
 
    \t return false; 
 
    } 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="radio1" type="radio" name="group1" value="1" checked="checked"> 
 
<label for="radio1">Option1</label> 
 

 
<input id="radio2" type="radio" name="group1" value="2"> 
 
<label for="radio2">Option2</label>

回答

0

不知道,如果你需要有收音机已被选中,但是这是一种方式去做。这应该适用于IE和Chrome。

$(document).ready(function() { 
 

 
    var dynamicValidation = false; //mock a field validation 
 
    if (!dynamicValidation) { 
 
    $("input[type=radio]").attr('disabled', true); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="radio1" type="radio" name="group1" value="1" checked="checked"> 
 
<label for="radio1">Option1</label> 
 

 
<input id="radio2" type="radio" name="group1" value="2"> 
 
<label for="radio2">Option2</label>

+0

谢谢,我也需要有一个“选中”默认和'dynamicValidation'可以在任何时间(基于另一个输入)更改为true,那么,不幸的是,使整个元素禁用并不理想。 – randomguy04

+0

是的,你最好的选择是禁用你的radiobuttongroup,因为使用你的点击,你将不得不点击它来执行,这在这种情况下并不理想,因为它在IE中似乎不被支持。 –

+0

如果你想看看,我对这个例子做了一些修改。 –