$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>javascript - Using JQuery onblur to set textbox value - Stack Overflow|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

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

matteradmin11PV0评论

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

Post a comment

comment list (0)

  1. No comments so far