簡體   English   中英

jQuery獲取文本框的價值

[英]jQuery to get value of textbox

在提交表單之前,我需要編寫一些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來獲取文本框值,我將非常感激。

提前致謝。

通過id訪問它?

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

此示例中的#表示按其id( jQuery docs )查找元素

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

eq為0,如果為1則為第二個td,對於文本框,我們使用input

closest()沿着DOM樹向上移動,而不是向下移動,所以如果$(this)等於當前行,你將永遠不會使用closest('td')在其中找到td標簽。

假設您不能簡單地使用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();

(第一個更快)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM