2011-07-07 15 views
0

私は、チェックされているときにチェックボックスの値を取得し、チェックされていないときにはその値を無視する必要のあるjavascriptを持っています。javascriptを使用してチェックボックスの値を取得するにはどうすればよいですか?

今私は、チェックボックスの値をつかんだ:

$("input[name='tos']:checked").val() 

それは、このチェックボックスをオンにしてフォームを送信するときに動作しますが、あなたはそれをオフにした場合、フォームに "の古い値を再提出同意する "と表示されます。だから私はどのようにチェックしたときにのみチェックボックスの値をつかむのだろうか?ここで

答えて

1

http://jsfiddle.net/dqy5H/

例フィドルです。最初の悪い返事をおかけして申し訳ありません。最も有用に少なくとも順に

+0

私は。$( "入力[名前= 'TOSを']")しようとしたのval()しかし、それは動作しませんでした。たぶん私は手動でチェックする必要がありますチェックする必要がありますか? – Incognito

+0

うーん、私は間違っています。フィドルを参照してください。 http://jsfiddle.net/dqy5H/ – mrtsherman

+0

興味深いサイトですが、手動でチェックして値を設定する必要がありましたが、とにかく感謝しています。 – Incognito

0

2つのこと、:)

  1. チェックボックスは、「同意する」の値を返すことはありません!私はあなたがミスを願っています。
  2. 実際に使用しているjQueryセレクターが実際に有効かどうかわかりません。他の仲間の言及と同じですが、それがチェックされたときに値を設定するだけです。 Oof、私の悪い。いずれにしても、チェックボックスにID /固有クラスを指定してから、次のようにすることをおすすめします。

    var checked = $( '#toscheckbox')。

フォームの送信データを乱すことなくIDを追加することができます。私はそれらを好む - 名前は非常に面倒です。

+0

IDを割り当てると、それはまだ古い値を保持します。 – Incognito

+0

@Kerin - なぜチェックボックスは "同意"の値を返さないのですか?それはむしろ恣意的な制限のようです。あなたは説明をお願いしますか? (私はたいていの場合、 "Y"や "true"や "1"などのブール値を返すようにコードを記述していますが、他の値に対しては決して* never *とは言いません)。 – nnnnnn

2

チェックされていないチェックボックスは、フォーム提出で旅行しないことを忘れないでください。あなたのコードは大丈夫ですが、サーバー側に古い値を保存している可能性があります。

回避策は、チェックボックスをオンまたはオフにしたときに値が変更され、サーバー上でこれを非表示にすると、<input type="hidden"/>が変更される可能性があります。または、単純にチェックボックスがサーバーに到着したかどうかを尋ねます。チェックボックスがオンになっていない場合は、サーバーがチェックされていないことを意味します。

これが役に立ちます。乾杯してください。

関連する問題