2016-07-12 17 views
1

なぜこれは常にtrueを返しますか?それは値に問題なぜ、jQueryセレクタがIf条件でtrueを返すのか?

<input type="checkbox" name="c1" id="c1" value="&controls=0">Hide Controls 
if ($('input[name=c1]:checked')){ 
    var controls = $('#c1').val(); 
} else { 
    var controls = ""; 
} 
alert(controls); 

ですか?しかし、あなたは、私は値を必要と見るように...

+5

セレクタは常にtrueです。代わりに '$( 'input [name = c1]')。( ':checked')'を使用してください。 – Mohammad

+0

なぜ私はそれを得ることができないのですか? @billyonecan –

+0

ええ、私はあなたが長さを言った理由を理解していないことを得た –

答えて

0

jQueryのセレクタはなかれオブジェクトセレクタオブジェクトを返すチェックする必要があるチェックすることは事実です。

要素の存在を確認する場合は、.is()メソッドまたは.lengthプロパティを使用できます。

if ($("input[name=c1]").is(":checked")) 
// Or 
if ($("input[name=c1]:checked").length) 
+0

なぜ私たちのすべてが-1私は理解していない得た。私はstackoverflowに新しいとこれは本当に迷惑です。 – Michal

+0

@MichalJarnot主に基本メカニックを誤解しているために、質問に対する回答が嫌なユーザーもいます。彼らは一般的に質の高い回答と質問が必要なので、一般的に質問を答えとともに下げます。私はOPの問題に正しい回答を投票しました。 –

0

誰かが私に与えたマイナス1ので、私は私の答えを編集することにしました:

これは、チェックボックスがチェックされているかどうかをチェックする方法です:

$('input[name=c1]').is(':checked') 

これは、チェックボックスの値を取得する方法である:

$('input[name=c1]').val(); 
+0

モハマドはそれが最初にコメントしたので、それはスロバとしてあなたを打つ大丈夫だとは思わない。 –

+0

@MichalJarnot一部のユーザーは、貧しい人とみなされる質問、または既に重複した回答があると答えた人が多いです。このケースでは、あなたのコードが正しい理由が説明されていないか、OPのコードが間違っている理由がないので、答えにコードを含めるだけなので、投票が失敗した可能性があります。編集されましたが、この回答の質が変わったかどうかを確認するためにユーザーが戻ってきたとは限りません。 –

+0

私はおそらくそれが来るのを見たはずです。説明をありがとう。 :) – Michal

0

ので(「入力[名前= C1]:チェックする」)は式$ tがあるオブジェクトを返し、 rue。 、アラート($( '入力[名前= C1]:チェックする')); // [オブジェクトのオブジェクト]

、オブジェクトが正しいオプションが0または1

の値を持つlengthプロパティを持っていますlength.Itが彼に

if($('input[name=c1]:checked').length) 
{ 
    var controls = $('#c1').val(); 
}else{ 
    var controls = ""; 
} 
alert(controls); 

https://api.jquery.com/checked-selector/

関連する問題