我有一个带文本框的转发器ID =" txtBomName"在ascx页面中,从pageload上的datatable中检索到一个值。 最终用户可以更改值,必须不是null / empty。 我有jquery来检查更改或模糊时是否为空/空,如果为null则生成警报然后我希望将null值设置回用户输入的原始其他设置值。 如果,我使用生成的控制ID,即:
,这确实有效$("#p_lt_ctl02_pageplaceholder_p_lt_zoneMainContent1_BOM_rptBoms_ctl00_txtBomName)"
这显然只适用于页面上的第一个文本框,如" ct100"每个框的ID更改的一部分。 代码:
$(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); ?
答案 0 :(得分:0)
您需要使用:
$(this).val(oldVal);
'这'是对当前对象的引用,即textArea,abouve代码将设置textArea的值
答案 1 :(得分:0)
试试此代码
$(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);
}
});
});