在运行时更改单选按钮的值

时间:2017-10-24 20:35:43

标签: jquery

我有这样的事情:

<input type="radio" value="1" name="rdo" id="rdo_1" checked="checked" />Yes
<input type="radio" value="0" name="rdo" id="rdo_0" />No

在某些DropDown索引更改时,我尝试将rdo_1设置为是。 并让他们都被禁用。

但由于某种原因,第一个单选按钮没有设置为True。

我做错了什么?

以下是我的表现:

$("input:radio[name='rdo']:checked").val('1');
$("input:radio[id='rdo_1']:checked").val('1');
$('#rdo_1').attr('disabled', true);
$('#rdo_0').attr('disabled', true);

2 个答案:

答案 0 :(得分:1)

使用jQuery's Prop

$(document).ready(function(){
  $('input[type=button]').on('click', function(){
    var target = $(this).data('target');
    $(target).prop('checked', true);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" value="1" name="rdo" id="rdo_1" checked="checked" />Yes
<input type="radio" value="0" name="rdo" id="rdo_0" />No
</br>
</br>
<input type="button" data-target="#rdo_1" value="Yes"/>
<input type="button" data-target="#rdo_0" value="No"/>

  

我自己的代码出了什么问题?

您提供的所有代码都没有修改checked属性。

.val('1')

更改value=""属性。

  

还有什么是.data('target')

jQuery's .data()获取data-属性的值。

data-blah="asdf";

因此

.data('blah') == "asdf";

答案 1 :(得分:1)

编辑: 您已禁用单选按钮,以便只能通过下拉菜单等设置;但是,这会导致问题,因为只有表单提交了已启用的元素。这是一个SO question,它提供了一个肮脏的工作。它将从单选按钮获取输入并且不对它们执行任何操作。我已将它添加到我的小提琴中。

$(':radio').click(function(){ return false; });

以下是如何使用下拉框执行此操作。您需要更改单选按钮以使用prop(属性)而不是val

&#13;
&#13;
$("#dropdown").on("change", function() {
  //Get the value of the dropdown box
  var dropDownVal = $(this).val();
  
  if (dropDownVal == 0) {
    //If the first drop down option was selcted
    $("#rdo_1").prop("checked", true);
    
  } else if (dropDownVal == 1) {
     //If the second drop down option was selcted
    $("#rdo_0").prop("checked", true);
  } else{
    //If the third drop down option was selcted
    $("#rdo_1").prop("checked", false);
    $("#rdo_0").prop("checked", false);
  }

});

//Disable the radio buttons - crude
$(':radio').click(function(){
    return false;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id='dropdown'>
  <option value="0">YES</option>
  <option value="1">NO</option>
  <option value="2">CLEAR</option>
</select>

<input type="radio" value="1" name="rdo" id="rdo_1" checked='checked' />Yes
<input type="radio" value="0" name="rdo" id="rdo_0" />No
&#13;
&#13;
&#13;