0

チェックボックスがほとんどないフォームをユーザーに表示しています。それらの一部は事前に選択され、一部は選択されません。

以下のように:

<input type="checkbox" name="box" value="9"> nine
<input type="checkbox" name="box" value="10"> ten
<input type="checkbox" name="box" value="11"> eleven
<input type="checkbox" name="box" value="12" checked> twelve

最後のチェックボックスではchecked、スクリプトレットを使用してキーワードが追加されていることに注意してください。

これで、 check を物理的に選択解除してもtwelve、JavaScript コードはチェックボックスが選択されていないことを認識しません。

更新 以前に間違ったリンクを貼り付けました。更新された jsfiddle リンクは次のとおりです: http://jsfiddle.net/JLSUK/20/

私が達成しようとしているのは、ユーザーがチェックボックスを選択した場合にのみユーザーに警告することです twelve。ただし、そのチェックボックスが選択されていなくても、それが選択されているというアラートが表示されます。これは、実際の HTML コンテンツに含まれているためだと思いますがchecked、ページが初めて読み込まれるため、この特定のチェックボックスが選択されていることをユーザーに示す必要があるため、それを削除することはできません。

これはjQueryで実行できますか?

4

2 に答える 2

1

あなたのjsfiddleには次のものがあります:

$('#update').click(function () {

一方、あなたinputは:

<input type="submit" id="something" value="update" /> 

jquery を次のように変更してみてください。

$('#something').click(function () {

jQueryの#*セレクターは、idではなくを参照していvalueます。


また、次のものがあります。

if (jQuery.inArray('8', selected) >= 0 && jQuery.inArray('11', selected) >=0)

どのチェックボックスにも値が8ないため、これが「true」になることはありません。


また、配列を新しい配列として宣言します。

var selected = new Array();

実際のデモを見る

「eight」と「eleven」を選択すると、ポップアップが表示されます


編集:質問の編集を見た後、次の行を追加して、前の配列項目をクリアする必要があります。

var selected = [];

http://jsfiddle.net/JLSUK/20/

于 2012-06-27T14:48:58.597 に答える
1

配列に要素を追加していますが、要素を削除することはありません。したがって、ユーザーが「更新」をクリックするたびに、配列を埋めるだけです。ある時点で、配列をクリアするか、以前の選択を配列から削除する必要があります (正確なロジックによって異なります)。

于 2012-06-27T14:47:43.370 に答える