2012-09-22 40 views
2

我有一個數據庫中,我得到值0或1(分別爲/否)。
如何選中/取消選中單選按鈕並在jQuery Mobile中檢查其狀態。 我的代碼如下檢查取消選中是沒有單選按鈕編程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);} 
    } 
+0

那你的javascript代碼?使用jsfiddle鏈接到它。 –

+0

對不起,我想保存單選按鈕檢查狀態數據庫即1或0如果是檢查然後狀態= 1其他狀態= 0我應該怎麼做 – skhurams

回答

0

我試了很多實驗僅此代碼工作我
val可以是0代表unchceck和1代表簽入db.maybe有一個發現它有用

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);} 
     } 
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(),現予以更正

+0

我不想改變它的價值只有它的狀態,即檢查或取消選擇 – skhurams

+0

那是上面的代碼所做的,它不會改變值,它會改變已檢查的狀態,請嘗試.. – Nelson

+0

Eclipse發生錯誤作業的左側必須是變量 – skhurams

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); 
}); 
相關問題