0

フォームが完成したかどうかをチェックする関数は次のとおりです。

だから、私がやろうとしていること:

  1. ラジオが選択されていない場合は、メッセージをスローします。
  2. ラジオが「はい」であるがテキストが入力されていない場合は、エラーをスローします。
  3. ラジオが「いいえ」でテキストが入力されている場合は、テキストを空にします。
  4. すべてが良ければ、`allResponsesに何かを追加します

フォームは5回表示され、入力は次のとおりです。

Yes a1

No

Yes a3

No

Yes 

5番目のケースでは「はい」が選択されていますが、テキストボックスに何も入力されていないため、この入力はエラーを表示するはずです。

しかし、私はこれを取得します:

http://i.imgur.com/ya2CUp0.png

また、1番目と3番目の場合のようにテキストは更新されていません。

JSについてはよくわかりませんので、できるだけ説明してください。

編集:完全なコード:http://pastebin.com/scNSNM2H

ありがとう

4

1 に答える 1

2

これをループに入れます:

var exaggerationPart = document.getElementById('exaggeration').value

次に、各項目に値があることを確認します。ただし、毎回同じ値が得られます。

同じ ID「誇張」で複数の入力を作成しています。これは無効な HTML です。ID は一意である必要があります。これを修正するには、他の要素 ( などinput[name='response"+thisJokeIndex+"']) で行っているのと同じように id をインクリメントします。

var exaggerationPart = document.getElementById('exaggeration' + thisJokeIndex).value
tipTD2.append("<input type='text' name='exaggeration' id='exaggeration" + tipIndex + "' size='70'>")

実際のデモ: jsfiddle.net/svvge/2

編集:valueテキスト ボックスの値をクリアするには、テキスト ボックス要素のプロパティを変更する必要があります。現在、変数の値を変更しているだけです。

var exaggerationInput = document.getElementById('exaggeration' + thisJokeIndex).value;
var exaggerationPart = exaggerationInput.value;
exaggerationInput.value = '';
于 2013-01-26T00:06:05.293 に答える