Javascript jqueryajax使用按钮选择输入
使用ajax进行调用,然后PHP格式化文本并将生成的HTML吐到页面上,jQuery将其附加到正文中。这个很好用 在生成的代码中,我在元素中添加了一个名为“.update info”的按钮,单击该按钮时,会获取其上方的字段,并将其放入一个对象数组(如提交表单,但不离开页面),该数组将通过AJAX提交Javascript jqueryajax使用按钮选择输入,javascript,jquery,ajax,Javascript,Jquery,Ajax,使用ajax进行调用,然后PHP格式化文本并将生成的HTML吐到页面上,jQuery将其附加到正文中。这个很好用 在生成的代码中,我在元素中添加了一个名为“.update info”的按钮,单击该按钮时,会获取其上方的字段,并将其放入一个对象数组(如提交表单,但不离开页面),该数组将通过AJAX提交 $('.customer-info-container').on('click','.customer-info .update-info',function(event){ sea
$('.customer-info-container').on('click','.customer-info .update-info',function(event){
search_path = $('.search-rel-path').val()+'insert/insert_new_customer';
var textinput = {};
$(this).parent().parent().parent().parent().children('input:text').each(function(e){
if($(this).length > 0){
textinput[$(this).attr('name')] = $(this).val();
}
});
});
我想在这里转储HTML以向您展示,但基本上父树位于具有2列的表的顶部
<table>
<tbody>
<tr>
<td>Label goes here</td>
<td><input type="text" name="foo"></td>
</tr>
<tr>
<td colspan=2>
<button class="update-info">Update info</button>
</td>
</tr>
</tbody>
</table>
标签在这里
更新信息
注意:这并不准确。大约有21个字段
控制台转储的textinput返回“undefined”,所以我做错了什么。有什么想法吗?替换此部分:
$(this).parent().parent().parent().parent().children('input:text').each(...);
与:
您还可以使用jQueryparents
函数,如下所示:
$(this).parents("table")
不同之处在于,如果使用
最接近的
,它将开始通过您的DOM,直到找到第一个匹配的父项,但是父项
将导致DOM中所有匹配的父项。您为什么不给输入命名?您应该使用而不是multiple.parent()我本来会用的,但我还能用吗?每个都是最接近的?此外,所有的输入都是命名的,我只是为了减少输入字符的数量而没有在这里进行命名。我只是不想用。因为我想它就像。。。最近的DOM元素将其限制为一个元素。
$(this).parents("table")