jQuery获取/设置转发器中文本框值的值

时间:2015-08-06 08:20:07

标签: javascript jquery

我有一个带文本框的转发器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);

2 个答案:

答案 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);
        }
    });
});