我试图获取表格单元格中的表单输入的值,但它将以未定义的形式返回。
$('.js-form').submit(function(event) {
alert($(this).children().has("input[name='points']").val());
});
我的HTML如下:
<tr>
<form action='...' method='post' class='js-form'>
<td><input type='text' name='points'/></td>
</form>
</tr>
在同一页面上有多个这些表单,我认为使用$(this)
会将我的DOM遍历限制为该函数当前正在处理的所选表单,但不确定为什么我没有任何价值回来? (该字段中有一个值)
答案 0 :(得分:1)
使用.find()
alert( $(this).find("input[name='points']").val() );
您的HTML存在问题;您无法在form
和tr
之间嵌套td
。 http://www.w3.org/TR/html401/struct/tables.html#h-11.2.5
这可能意味着浏览器会根据您的预期呈现不同的代码。这些都是可接受的结构:
<form action='...' method='post' class='js-form'>
<table>
<tr>
<td><input type='text' name='points'/></td>
</tr>
</table>
</form>
<table>
<tr>
<td>
<form action='...' method='post' class='js-form'>
<input type='text' name='points'/>
</form>
</td>
</tr>
</table>