這篇是精華,知道的人可以省你很多寶貴的時間
網路上如果搜尋 jquery radio / checkbox 取值,似乎找到的方法都不能用。以下是我試過失敗的寫法:
if($("#chk1").attr('checked')==undefined); <== X 不成功 checkbox 取值失敗
var item = $('input[@name=items][@checked]').val(); <== X 不成功 radio取值失敗,這樣會取出第一筆,無論筆是否有被選
$("input[@type=radio][@checked]").val(); <==也是失敗
checkbox 設定值
$("#chk1").attr("checked",''); //設定不打勾
$("#chk2").attr("checked",true); //設定打勾
$("#chk3").attr("checked",1); //設定打勾
Javascript
如果變數本身(假設是this)是checkbox,
this.checked = true;
checkbox 取值
var v=$("input[name='fetion']").is(":checked");
v="true"有被打勾,否則為 "false"
注意:使用 is 的方法得到的會是字串的 "true"/"false",而不是布林值。所以當你用 if(v) 這種方式來判斷的話,永遠為真
或是
var v=$("#fetion").is(":checked");
var v= (typeof($("input[name=_dis]:checked").val()) == "undefined" )? "0":"1";
直接用三元運算子得到 v值為0或1。
Javascript
如果this本身是checkbox
那麼直接取值即可 this.checked 結果會是true/false
radio 賦值
$('input[name="sex"]')[1].checked = true; //radio 賦值==>第二個選項選取
$("input[name=state][value='2']").attr('checked',true); //radio 賦值==>值為2的那個選取
順便一提的,如果一個頁面有很多<input name="xxx" .... /> 的欄位,如果每個設定 id 再賦值顯然太累了,不如一行解決。
$("input[name=xxx]").val( 值 );
radio 取值
以下範例示範當使用者按下 submit ( id=sb1 ) 時的檢查動作,其中 radio 的 name=doway
$("#sb1").click(function(){
var method =$("input[name='doway']:checked").val(); //radio 取值,注意寫法
if( typeof(method) == "undefined"){ // 注意檢查完全沒有選取的寫法,這行是精華
alert( "請選取操作方式!");
return false;
}
原文 2009-10-24 22:13:02