好的,这就是这个想法:
我想制作一个jQuery脚本来处理多个表单.每个表单都有一个按钮.单击此按钮时,脚本应将$ _POST中的所有输入字段的名称和值发送到表单的操作URL.但我不能让它发挥作用.
它不会在我的jQuery文件中循环遍历第3行的.each.
jQuery的:
$("input[type='button']").click(function(){
var query = {};
$(this).parent('form').children('input[type="text"]').each(function(){
query[$(this).attr('name')] = $(this).val();
});
$.post($(this).parent('form').attr('action'), query, function(data) {
$("#dialog").html(data);
$("#ui-id-1").html('Activate account');
$("#dialog").dialog("open");
}, 'json');
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<form action="/action/activateacc.php">
<table>
<tr>
<td>E-mail:</td>
<td><input type="text" id="mail" name="mail" /></td>
<td><img class="tick" id="mailIMG" width="20px" /></td>
</tr>
<tr>
<td>Activation code:</td>
<td><input type="text" id="code" name="code" /></td>
<td><img class="tick" id="codeIMG" width="20px" /></td>
</tr>
<tr>
<td>Choose organization-name:</td>
<td><input type="text" id="name" name="name" /></td>
<td><img class="tick" id="nameIMG" width="20px" /></td>
</tr>
<tr>
<td></td>
<td style="text-align:center"><input type="button" style="cursor:pointer" value="Activate account" /></td>
</tr>
</table>
</form>
Run Code Online (Sandbox Code Playgroud)
.parent()只上升 DOM 的一个级别 - 尝试使用.closest()and find()- 所以
$(this).closets('form').find('input[type="text"]').each(function(){
Run Code Online (Sandbox Code Playgroud)