除非标记单选按钮,否则要禁用一组字段

时间:2014-07-02 19:20:07

标签: javascript jquery conditional hidden

我已经在http://jsfiddle.net/mbender/aH8Ax/

上传了HTML / CSS / JS

我知道问题可能在JS中,因为我几乎没有经验。

$(function () {
    var $promised = $("input[name='RadioGroup1']");
    $promised.each(function () {
        $(this).on("click", function () {
            $promised.each(function () {
                var textField = $(this).nextAll("input").first();
                if (textField) textField.prop("disabled", !this.checked);
            });
        });
    });
});

还有一个有条件隐藏的元素可以解决。你会看到我在小提琴中的意思

1 个答案:

答案 0 :(得分:0)

只要属性“禁用”,就会禁用输入字段。在标记中存在,设置值的大小并不重要。你可以做的是循环遍历美国部分内的所有输入元素并调用

.removeAttribute('disabled');

如果用户选择美国单选按钮。

编辑:这样的事情应该有用(只要你有JQuery)

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type=text/javascript>
$(function() {
  var $promised = $("input[name='RadioGroup1']");
  $promised.each(function() {
    $(this).on("click",function() {

      var USARadio = document.getElementById("RadioGroup1_0");
      if(USARadio.checked == true){
        toggleUSA(true);
      }
        else{
          toggleUSA(false);
        }
    });    
  });
});   
function toggleUSA(disable){
  var USATable = document.getElementById("rowThree");
  var USAInputs = USATable.getElementsByTagName("input");
  for(var i=0;i<USAInputs.length;i++){
    if(disable == true)
      USAInputs[i].removeAttribute("disabled");
    else
      USAInputs[i].setAttribute("disabled", "true");
  }
}    
</script>