jquery mobile设置单选按钮组的选定值

时间:2016-08-05 19:37:32

标签: javascript jquery-mobile

我有一个这样的单选按钮组:

   <div data-role="fieldcontainer">
            <fieldset data-role="controlgroup" data-type="horizontal" name="optRestriction" id="optRestriction">
                <legend>Restriction</legend>
                <input type="radio" name="chkRestriction" id="chkRed" value="R" class="custom" />
                <label for="chkRed">Red</label>
                <input type="radio" name="chkRestriction" id="chkYello" value="Y" class="custom" />
                <label for="chkYello">Yellow</label>
                <input type="radio" name="chkRestriction" id="chkGreen" value="G"  class="custom" />
                <label for="chkGreen">

我尝试在从服务API检索值后设置所选值。

我尝试了以下各种方式:

  $("input[name=chkRestriction][value=" + data.rows[0].restrictionCd + "]").prop('checked', true).trigger('change');

                                $("input[type='radio']:eq(" + data.rows[0].restrictionCd + ")").attr("checked", "checked");
                                $("input[type='radio']").checkboxradio("refresh");

                                $("input[name=chkRestriction][value=" + data.rows[0].restrictionCd + "]").prop('checked', true).trigger('change');
                                $('[name="chkRestriction"]').val([ data.rows[0].restrictionCd ]);

但似乎都没有用。演示fiddle is here

提前感谢任何建议。

3 个答案:

答案 0 :(得分:3)

设置属性&#34;已选中&#34;并致电刷新。

 $('input:radio[name="chkRestriction"]').filter('[value="R"]').attr("checked",true).checkboxradio("refresh");

Jsfiddle - https://jsfiddle.net/of7uvbwh/3/

答案 1 :(得分:0)

在循环中设置/取消设置每个单选按钮的值,如下所示:

var valToSet = myVal; // myVal is value to set from API

$('#optRestiction input').each(function(){
  var $this = $(this)
  if($this.val() == valToSet) {
    $this.prop('checked', true);
  }
  else {
    $this.prop('checked', false);
  }
});

当您的某个输入更改状态时,“已更改”事件将触发。除非您为该输入定义了“已更改”事件的处理程序,否则触发它将无法完成任务。

答案 2 :(得分:0)

试试这个。

$(&#39;输入:无线​​电[名称=&#34; chkRestriction&#34;]&#39)进行过滤(&#39; [值=&#34; R&#34;&# 39;)ATTR(&#34;检查&#34;,真).checkboxradio()checkboxradio(&#34;刷新&#34);