2

我有一个数据库,其中我得到值 0 或 1(分别为否/是)。
如何在 jQuery Mobile 中选中/取消选中单选按钮并检查其状态。我的代码如下

HTML 代码

<label>Are you Mad? </label>   
 <fieldset data-role="controlgroup" data-type="horizontal">     
 <input data-mini="true" type="radio" name="rdIsBP" id="rdIsBPYes" value="" />
 <label for="rdIsBPYes">YES</label>
 <input data-mini="true"  type="radio" name="rdIsBP" id="rdIsBPNo" value="choice-1"  />
 <label for="rdIsBPNo">NO</label>
</fieldset>

JavaScript 代码

function  CheckRadioStateYNoo(val,rdButton){      
      try{
      var radios = document.getElementsByName(rdButton);
      for( i = 0; i < radios.length; i++ ) {
       if(i==0)
       {
          if(val==1) 
          {
              //radios[i].checked=true;
              $("#" + rdButton + "Yes").attr ("checked", "checked");
              alert('rdButton' +   radios[i].checked);               
          }          
      }
       else{
           if(val==1) 
           {
               radios[i].checked=true;
               alert('rdButton' +  radios[i].checked);               
           }
       }
      }
      }
      catch(e){alert(e);}
    }
4

3 回答 3

4
$('#rdIsBPYes').prop('checked', value);
$('#rdIsBPNo').prop('checked', !value);

这是jQuery 1.6及更高版本的首选方法。

如果您的jQuery比1.6旧,您可以执行以下操作:

if (value) {
   $('#rdIsBPYes').attr('checked','checked');
   $('#rdIsBPNo').removeAttr('checked');
} else {
   $('#rdIsBPNo').attr('checked','checked');
   $('#rdIsBPYes').removeAttr('checked');
}

更新:我误导了 的语法.prop(),现已更正

于 2012-09-22T10:40:14.460 回答
0

我尝试了很多实验,只有这段代码对我
有用

html代码

<label> Have you had surgery within the last 12 months?</label> 
            <fieldset data-role="controlgroup" data-type="horizontal">

            <input data-mini="true" type="radio" name="rdIsSurgery" id="rdIsSurgeryYes" value="choice-1" />
            <label for="rdIsSurgeryYes">YES</label>


            <input data-mini="true"  type="radio" name="rdIsSurgery" id="rdIsSurgeryNo" value="choice-4"  />
            <label for="rdIsSurgeryNo">NO</label>
    </fieldset>  

js代码

 function  CheckRadioStateYN(val,rdButton){      
     try{
             if (val==1){               
                 $('#' + rdButton + 'Yes').attr('checked', true).checkboxradio('refresh');
                 $('#' + rdButton + 'No').removeAttr('checked');          
                     }
         else{
         $('#' + rdButton + 'No').attr('checked', true).checkboxradio('refresh');
         $('#' + rdButton + 'Yes').removeAttr('checked');

         }        
        }
          catch(e)
          {alert(e);}
        }
于 2012-09-22T11:49:33.000 回答
0
    <label>Are you Mad? </label>
    <fieldset data-role="controlgroup" data-type="horizontal">
        <input data-mini="true" type="radio" name="rdIsBP" class="fakeRadio" value="yes"  checked />
        <label for="rdIsBPYes">YES</label>
        <input data-mini="true"  type="radio" name="rdIsBP" class="fakeRadio" value="no"  />
        <label for="rdIsBPNo">NO</label>
    </fieldset>

jQuery

$(".fakeRadio").click(function(){
    $(".fakeRadio").prop( "checked", false );
    $(this).prop( "checked", true );

    /* If you need to grab the value */
    // var val = $(this).attr("value") ;  
    // alert(val);   
});
于 2014-09-26T08:53:47.853 回答