私がこのフォームを持っているとしましょう:
<form method="post" name="b" >
<table>
<tr>
<td>Field A</td>
<td><input type='text' name='field[0][a]' id='field[0][a]'></td>
<td>Field B</td>
<td><textarea name='field[0][b]' id='field[0][b]'></textarea></td>
<td><button>remove</button></td>
</tr>
</table>
</div>
<div id="container"></div>
<button id="mybutton">add form</button>
<div align="center">
<p><button onClick="dadosFormulario()" value="Registar" name="registar">Registo</button></p>
</div>
</form>
そして、「フォームの追加」ボタンをクリックしたときに持っている入力を複製するjquery関数があります。それで、それに関して、私はjqueryの.val()メソッドで入力の値を保存しようとしています。
したがって、このような入力がある場合:
<input type='text' name='teste' id='teste'>
私はこれでそれを知っています:
var v = $('#teste').val();
私は彼女の価値を受け取ることができます。ただし、入力の配列があり、フォームのフィールドを複製できるので、それが私の状況である場合、次の入力から複数の値を取得するにはどうすればよいですか?
<input type='text' name='field[0][a]' id='field[0][a]'>
<input type='text' name='field[0][b]' id='field[0][b]'>
var v = $('#field [iterator] [a]')。val(); 動作しません、それは「未定義」になります。
val();を使用して入力から値を取得できないjquery関数。未定義を与える:
$countForms = 1;
(function($){
$.fn.addForms = function(idform){
var myform = "<table>"+
" <tr>"+
" <td>Field A ("+$countForms+"):</td>"+
" <td><input type='text' name='field\\["+$countForms+"\\]\\[a\\]'></td>"+
" <td>Field B ("+$countForms+"):</td>"+
" <td><textarea name='field["+$countForms+"]['b']'></textarea></td>"+
" <td><button>remove</button></td>"+
" </tr>"+
"</table>";
if(idform=='mybutton'){
myform = $(myform);
$("button", $(myform)).click(function(){ $(this).parent().parent().remove(); });
$(this).append(myform);
$countForms++;
}
};
})(jQuery);
$(function(){
$("#mybutton").bind("click", function(e){
e.preventDefault();
var idform=this.id;
if($countForms<3){
$("#container").addForms(idform);
}
});
});