[英]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.