简体   繁体   English

jQuery获取文本框的价值

[英]jQuery to get value of textbox

I need to write some jQuery/javascript to do some validation before submitting a form, because I have to check per some very specific results. 在提交表单之前,我需要编写一些jQuery / javascript来进行一些验证,因为我必须根据一些非常具体的结果进行检查。 Per my tests I believe I am accessing the correct row of data as $(this) in my table with my validation tests, however I cannot get the value typed into the text box of the second td of the row. 根据我的测试,我相信我在我的表中使用我的验证测试访问正确的数据行$(this),但是我无法将值输入到行的第二个td的文本框中。 Something is incorrect with: 有些事情不正确:

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

which is preventing the jQuery from getting the value typed into the test textbox of the html below. 这阻止了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;
});

If anyone can describe the correct jQuery to get the textbox value I would greatly appreciate it. 如果有人能够描述正确的jQuery来获取文本框值,我将非常感激。

Thanks in advance. 提前致谢。

Access it by id? 通过id访问它?

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

The # in this example means find an element by its id ( jQuery docs ) 此示例中的#表示按其id( jQuery docs )查找元素

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

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

closest() travels up the DOM tree, not down, so if $(this) equals the current row, you will never find the td tags inside it using closest('td') . closest()沿着DOM树向上移动,而不是向下移动,所以如果$(this)等于当前行,你将永远不会使用closest('td')在其中找到td标签。

Assuming that you can't simply use the id attribute to access the input directly, as Jamie suggested, you would need to use: 假设您不能简单地使用id属性直接访问input ,正如Jamie建议的那样,您需要使用:

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

. . . to get the first td of the row, assuming that $(this) references the row that you want. 获取行的第一个td ,假设$(this)引用了您想要的行。 To access the value of the select inside it, use: 要访问其中的select值,请使用:

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

EDIT: Actually, given your code, there are a whol bunch of ways that you could access the value of that select element, but it's hard to tell which would be the most efficient without seeing the rest of the code, to know the context of the logic. 编辑:实际上,考虑到你的代码,你可以通过一系列方法来访问select元素的值,但是如果没有看到其余的代码,很难知道哪个是最有效的,知道上下文的逻辑。

UPDATE: Based on your comments below, try this for your code: 更新:根据您的评论,请尝试以下代码:

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

. . . or . 要么 。 . .

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

(the first one is faster) (第一个更快)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM