0

name="choices"送信前にすべての入力要素を取得しようとしています。フォームを送信する前に、これらの要素の値を確認したいと思います。問題は、取得している要素の値である 0 ,1 ,2 を取得するのではなくundefined(3回)です。

<form action="/check"  method="post" id="mform1" >
<div id="id_poll_choices" >
                A). <input type="text"  name="choices" value="0"><br>
                B). <input type="text"  name="choices" value="1"><br>
                C). <input type="text"  name="choices" value="2"><br>
            </div>  
<input type="submit" id="id_submit" value="Submit"/>
</form>

jquery

$('#mform1').submit(function(){

            $( "input[name*='choices']" ).each(function(index, elm){
                alert(elm.val)
            });
    });

アラート表示undefined

ここで何が問題になる可能性がありますか?

4

2 に答える 2

3

elmDOM要素です。valプロパティはありません。

交換

 alert(elm.val)

 alert($(elm).val())

また

 alert(elm.value) // better

いくつかのメモ:

  • id にも注意してください。特定の id を持つことができる要素は 1 つだけです。

  • as selector"input[name='choices']"の代わりに使用する必要があります。"input[name*='choices']"どちらもここで機能しますが、一方はより高速で選択的です。もちろん、要素に異なる名前を付ける必要がない限り(これはラジオボタンの一般的な慣例です)

  • 要素はthisコールバックにあります
  • console.logの代わりにalert(続きを読む)

だから私はこれを提案します

$('#mform1').submit(function(){
        $( "input[name='choices']" ).each(function(){
            console.log(this.value);
        });
});
于 2013-09-14T10:04:21.090 に答える
0

試す:

$('#mform1').submit(function(){
            $( "input[name*='choices']" ).each(function(index, elm){
                alert(elm.value);
            });
    });

DEMO FIDDLE

注:すべての入力に同じ ID を使用しないでください。ID は一意である必要があります。

于 2013-09-14T10:05:25.440 に答える