2017-05-25 14 views
-1

私はJavaScript/jqueryの問題に苦しんでいます。私はforeachループ内で作成された複数のフォームと、foreachループで作成された複数のjavascript関数を持っています。Javascriptが最初のフォームを見つけられない

基本的に、最初の形式は次のようになります。

<form role="form" action="/save/parishioner" id="1" name="1" method="post"> 
<input type="text" class="form-control" name="acct_number" id="acct_number" value="test" onchange="save1()" /> 
<input type="text" class="form-control" name="first_name" id="first_name" value="name" onchange="save1()"/> 
</form> 

二番目の形式は次のようになります。

<form role="form" action="/save/parishioner" id="2" name="2" method="post"> 
<input type="text" class="form-control" name="acct_number" id="acct_number" value="test" onchange="save2()" /> 
<input type="text" class="form-control" name="first_name" id="first_name" value="name" onchange="save2()"/> 
</form> 

と機能は次のようになります。

alert($('form[name="2"]').serialize()); 
alert($('form[name="3"]').serialize()); 

ときIデータをシリアライズしてアラートを作成しようとすると、最初のアラートは空白に戻り、2番目のアラートには2番目のフォームが表示されますd。

なぜ最初のフォームが見つからないのですか?

私は非常に助けていただければ幸いです!

+0

これは、あなたが説明した結果を与える例ですか?あなたは 'name = 3'という形式のフォームを持っていないので、最初の警告が機能するはずで、2番目の警告は動作しません。 – Lixus

+0

警告は警告1と警告2で、2と3ではありません。 – user1687763

+0

それはうまくいくと思いますか? IDの前に手紙を追加したら? – user1687763

答えて

1

あなたが投稿したコード(これはあなたの投稿の間違いでない限り)は、実際には第2の呼び出しではなく最初の呼び出しからシリアル化された警告が表示されます。警告であなたのセレクタはそのフォームの名前のparamにして、セレクタでのアラートに配置されている値が一致しない

alert($('form[name="2"]').serialize()); 
alert($('form[name="3"]').serialize()); 

間違っています。それらは次のようにする必要があります。

alert($('form[name="1"]').serialize()); 
alert($('form[name="2"]').serialize()); 
関連する問題