jQuery获取文本框的价值

时间:2014-02-26 20:18:38

标签: javascript jquery textbox html.textboxfor

在提交表单之前,我需要编写一些jQuery / javascript来进行一些验证,因为我必须根据一些非常具体的结果进行检查。根据我的测试,我相信我在我的表中使用我的验证测试访问正确的数据行$(this),但是我无法将值输入到行的第二个td的文本框中。有些事情是不正确的:

alert($(this).closest('td').find($("input[name=test]")).val())

阻止jQuery将值输入到下面html的测试文本框中。

<tr>
<td>
    <select id="selectId3" name="selectId3" data-val-required="The selectId3 field is required." data-val-number="The field selectId3 must be a number." data-val="true">
        <option value="">-- Select Area --</option>
        <option value="2">2</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="10">10</option>
        <option value="13">13</option>
        <option value="16">16</option>
        <option value="17">17</option>
    </select>
</td>
<td>
    <span style="label2">
        <input id="test" type="text" value="" name="test">
    </span>
</td>
<td>   </td>

$('#myForm').submit(function () {
    $("select").each(function () {
        if (($(this).val() != '') && ($(this).val() != '-- Select Area --')) {
            alert($(this).closest('td').find($("input[name=test]")).val());
        }
    });
    return false;
});

如果有人能够描述正确的jQuery来获取文本框值,我将非常感激。

提前致谢。

3 个答案:

答案 0 :(得分:3)

通过ID访问它?

$("#test").val();

此示例中的#表示按其ID(jQuery docs

查找元素

答案 1 :(得分:0)

 var textboxvalue= $(this).closest('td:eq(1) input').val();

eq为0,如果为1则为第二个td,对于文本框我们使用input

答案 2 :(得分:0)

closest()向上移动DOM树,而不是向下移动,因此如果$(this)等于当前行,您将永远不会使用td在其中找到closest('td')标记。< / p>

假设您不能简单地使用id属性直接访问input,正如Jamie建议的那样,您需要使用:

$(this).children("td:eq(0)");

。 。 。获取行的第一个td,假设$(this)引用了您想要的行。要访问其中的select值,请使用:

$(this).children("td:eq(0)").find("select").val();

编辑:实际上,根据您的代码,您可以通过一系列方法来访问该select元素的值,但很难说哪个是最合适的高效而无需查看其余代码,了解逻辑的上下文。

更新:根据您的评论,请尝试使用以下代码:

$(this).closest("tr").children("td:eq(0)").find("select").val();

。 。 。要么 。 。

$(this).closest("tr").children("td:eq(0) select").val();

(第一个更快)