javascript - Using JQuery onblur to set textbox value - Stack Overflow

I have a textbox with these rules:1) I populate the textbox.text from a dictionary in session2) If th

I have a textbox with these rules: 1) I populate the textbox.text from a dictionary in session 2) If the user enters a new value, setTextBoxData will save it in the dictionary 3) On entry (on focus) the field text is blanked. 4) On blur, if the field is still empty, I want to set it to the original value.

<asp:TextBox ID="txtNumberEmployees" runat="server" Width="50px" onfocus="this.value='';"  
onchange= "javaScript:$(function()setTextBoxData('NUMBEREMPLOYEES','txtNumberEmployees');});"
onblur="javaScript:restore ('txtNumberEmployees', 'NUMBEREMPLOYEES');"/>

The "restore" function referenced above is:

function restore(control, input) {
    var data = getInputData(input);
    $('#' + control).val(data);
}

getInputData returns the data value correctly. The problem is with the last line.

I have tried many ways to set this, but none seem to work. It should be a simple problem, but I can't get it to work yet.

I have a textbox with these rules: 1) I populate the textbox.text from a dictionary in session 2) If the user enters a new value, setTextBoxData will save it in the dictionary 3) On entry (on focus) the field text is blanked. 4) On blur, if the field is still empty, I want to set it to the original value.

<asp:TextBox ID="txtNumberEmployees" runat="server" Width="50px" onfocus="this.value='';"  
onchange= "javaScript:$(function()setTextBoxData('NUMBEREMPLOYEES','txtNumberEmployees');});"
onblur="javaScript:restore ('txtNumberEmployees', 'NUMBEREMPLOYEES');"/>

The "restore" function referenced above is:

function restore(control, input) {
    var data = getInputData(input);
    $('#' + control).val(data);
}

getInputData returns the data value correctly. The problem is with the last line.

I have tried many ways to set this, but none seem to work. It should be a simple problem, but I can't get it to work yet.

Share Improve this question edited Oct 26, 2012 at 21:57 Adriano Carneiro 58.7k12 gold badges94 silver badges123 bronze badges asked Oct 26, 2012 at 19:18 Bob JonesBob Jones 2,0485 gold badges34 silver badges60 bronze badges 1
  • looks like a syntax error: javaScript:$(function()setTextBoxData('NUMBEREMPLOYEES','txtNumberEmployees');}); shouldn't it just be javaScript:setTextBoxData('NUMBEREMPLOYEES','txtNumberEmployees'); – Brian Glaz Commented Oct 26, 2012 at 19:22
Add a ment  | 

2 Answers 2

Reset to default 1

The problem is ASP.NET will generate an ID that will not be txtNumberEmployees. ASP.NET will generate an ID for your input that will end with txtNumEmployees.

Change this line:

$('#' + control).val(data);

to this:

$('[id$=' + control + ']').val(data);

It will work because this is the Attribute Ends with Selector.

1: Make sure you have no javascript errors. I see there's a missing '{' in the onchange.

2: You can simply pass 'this' as the textbox reference and update it like below:

<asp:TextBox ID="txtNumberEmployees" runat="server" Width="50px" onfocus="this.value='';"  
onchange= "javaScript:$(function(){setTextBoxData('NUMBEREMPLOYEES',this);});"
onblur="javaScript:restore (this, 'NUMBEREMPLOYEES');"/>

then simply set the value like:

$(control).val(data);

3: There are other ways as well to grab an asp element like shown here. Find ASP.NET ClientID in jquery

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745665788a4639115.html

相关推荐

  • javascript - Using JQuery onblur to set textbox value - Stack Overflow

    I have a textbox with these rules:1) I populate the textbox.text from a dictionary in session2) If th

    4小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信