获取提交jQuery的嵌套表单元素的值

时间:2014-09-07 18:02:45

标签: jquery

我试图获取表格单元格中的表单输入的值,但它将以未定义的形式返回。

$('.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遍历限制为该函数当前正在处理的所选表单,但不确定为什么我没有任何价值回来? (该字段中有一个值)

1 个答案:

答案 0 :(得分:1)

使用.find()

alert( $(this).find("input[name='points']").val() );

您的HTML存在问题;您无法在formtr之间嵌套tdhttp://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>