0

jqueryを使用してボックスがチェックされているかどうかを確認したいと思います。私の目的は、オプションが選択されていない場合にフォームが非表示にならないようにすることです。

$("#submit").click(function(){  
var opt = $('input[name=value]:checked').attr('value');
if(opt!='undefined'){
$.ajax({
type: "POST",
url: url,
data: 'option='+opt,
cache: false,
success: function(html)
{   
 alert(opt);

}
     });
}       
return false;
});

html

<form id="form" method="post" action="">
<input type="radio" name="value" value="1" />1<br>
<input type="radio" name="value" value="2" />2<br>
<input type="radio" name="value" value="3" />3<br>
<input type="radio" name="value" value="4" />3<br>
<input id="submit" type="submit" value="submit"/>
</form>
4

5 に答える 5

2

$('input[name=value]:checked').length何かをする前にチェックすることをお勧めします。)要素がチェックされていない場合は、0になります。つまり、置換します。

var opt = $('input[name=value]:checked').attr('value');

...と

var $checkedElement = $('input[name=value]:checked');
if (! $checkedElement.length) {
   // no option was selected, return false or alert
} 
var opt = $checkedElement.val();

ただし、元のコードは非常に近く、間違いが1つだけあります。(文字列)ではなく(変数)と比較optする必要があります。undefined'undefined'

if (opt != undefined) { ... do the thing .. }

HTMLのラジオボタンに値がないため、はopt != 'undefined'実際には常にと評価されます。繰り返しになりますが、との違いを考慮してください。後者は実際には真の値です(ただし、に等しくはありません)。false'undefined'false'false'true

于 2012-07-07T22:22:49.697 に答える
1
$("checkbox").is(":checked");

これは true または false を返します。チェックされているかどうか

于 2012-07-07T22:25:00.710 に答える
0

デモ http://jsfiddle.net/ZKC2z/

よく読んでください:http://api.jquery.com/checked-selector/

:notセレクターもある

.is(":checked")あなたのためにトリックを行います。

于 2012-07-07T22:26:54.907 に答える
0

を使用してチェックされていない場合.is()

if ( ! $("input").is(':checked') )

!前に追加するか、使用するだけ.not()

if ( ! $("input").not(':checked') )
于 2012-07-07T22:30:36.747 に答える
0

うまくいけば、これは役に立ちます...

$("#submit").click(function(){  
var opt = $('input[name=value]:checked').attr('value');
if(opt){
 alert(opt + "- ok, posting!");
 return true;
} else {
 alert('pick something first');
 return false;
}
});
于 2012-07-07T22:43:23.170 に答える