簡體   English   中英

jQuery在轉發器中獲取/設置文本框值的值

[英]jQuery get / set value of textbox value in a repeater

我在一個ascx頁面中有一個帶有文本框ID =“ txtBomName”的轉發器,其值是從頁面加載時的數據表中檢索到的。 最終用戶可以更改值,不能為null / empty。 我有jquery檢查是否在更改或模糊時為null / empty,如果為null則發出警報,然后我希望將null值設置回原始值,否則要根據用戶輸入的值設置值。 如果我使用生成的控件ID,即:

$("#p_lt_ctl02_pageplaceholder_p_lt_zoneMainContent1_BOM_rptBoms_ctl00_txtBomName)"

這顯然僅適用於頁面上的第一個文本框,因為ID的“ ct100”部分隨每個框而變化。 碼:

   $(document).ready(function () {
    $("#p_lt_ctl02_pageplaceholder_p_lt_zoneMainContent1_BOM_rptBoms_ctl00_txtBomName").change(function () {
        var oldVal = this.getAttribute('value');
        if (this.value == null || this.value == "") {
            alert("Please ensure the name is not empty");
            $("#p_lt_ctl02_pageplaceholder_p_lt_zoneMainContent1_BOM_rptBoms_ctl00_txtBomName").val(oldVal);
        }
        else {
            $("#p_lt_ctl02_pageplaceholder_p_lt_zoneMainContent1_BOM_rptBoms_ctl00_txtBomName").val(this.value);
        }
    });
    });

因此,我更改了代碼以查找id $ = txtBomName並將警報設置為(this.id)每個框的ID均正確顯示,如何使用(this.id).val(oldVal)設置文本框的值);

您需要使用:

 $(this).val(oldVal);

“這”是對當前對象的引用,即textArea上面的代碼將設置textArea的值

試試這個代碼

$(document).ready(function () {

 // The simplest way is to save the original value using data() when the    
 // element gets focus. 
   $("input[id$='txtBomName']").on('focusin', function(){
        $(this).data('val', $(this).val());
    });

    $("input[id$='txtBomName']").change(function () {
        var txtBox=$(this);
        var prev = txtBox.data('val');
        var current = txtBox.val();
        if (current) {
             txtBox.val(current);
        }
        else {
           alert("Please ensure the name is not empty");
            txtBox.val(prev);
        }
    });
});

暫無
暫無

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

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