2015-06-02 72 views
0

我有一個單選按鈕,允許用戶選擇一個選項,爲此,我已根據此選擇使隱藏輸入保留一個值。jQuery單選按鈕隱藏輸入值更改

的形式如下:

<form action="#" method="post"> 
    <label for='radio1'>Select this?&nbsp;&nbsp;</label> 
    <input type='checkbox' id='radio1' name='radio1' /> 

    <input type="hidden" id="value1" name="value1" value="" /> 

    <input type='submit' name='submit' value='Submit' /> 
</form> 

而jQuery的,像這樣:

<script> 
    $(document).ready(function() { 
     $("#radio1").on("click", function() { 
      var value1 = $("#value1").value; 
      if ($("#radio1").attr("checked") == 'checked') { 
       value1.val("true"); 
      } 
      else { 
       value1.val("false"); 
      } 
     }); 
    }); 
</script> 

我不知道我在做什麼錯在何處或如何解決它,可有人點我正確的方式?

+1

你究竟發生了什麼事?代碼是做什麼的? – SuperBiasedMan

+0

代碼是說,{如果收音機被選中,說這個,別的,那麼說},但是在VS的調試器中,單選按鈕的click事件不會觸發任何事情說{改變value1的值爲「真」或「假」} –

回答

2

您需要檢查檢查屬性的值

$(document).ready(function() { 
    $("#radio1").on("click", function() { 
     $("#value1").val(this.checked); 
    }); 
}); 

演示:Fiddle

+0

這是完美的,非常感謝你! –

0

你不需要.valuevalue1

var value1 = $("#value1"); // Don't need `.value` here 

if ($("#radio1").is(":checked")) { 
    value1.val("true"); 
} else { 
    value1.val("false"); 
} 
0

這裏是正在運行的代碼

$(document).ready(function() { 
 
    $("#radio1").on("click", function() { 
 

 
     if ($("#radio1").is(":checked")) { 
 
     alert($("#radio1").attr("checked", true).is(":checked")); 
 
     } else { 
 
     alert($("#radio1").attr("checked", false).is(":checked")); 
 
     } 
 
    }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label for='radio1'>Select this?&nbsp;&nbsp;</label> 
 
<input type='checkbox' id='radio1' name='radio1' /> 
 

 
<input type="hidden" id="value1" name="value1" value="" /> 
 

 
<input type='submit' name='submit' value='Submit' />