簡體   English   中英

使用JQuery onblur設置文本框值

[英]Using JQuery onblur to set textbox value

我有一個包含這些規則的文本框:1)我從會話2中的字典填充textbox.text如果用戶輸入新值,setTextBoxData將其保存在字典中3)在輸入(焦點上)時,字段文本是消隱。 4)在模糊時,如果字段仍為空,我想將其設置為原始值。

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

上面引用的“恢復”功能是:

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

getInputData正確返回數據值。 問題出在最后一行。

我已經嘗試了很多方法來設置它,但似乎都沒有。 這應該是一個簡單的問題,但我無法讓它工作。

問題是ASP.NET將生成一個不會是txtNumberEmployees的ID。 ASP.NET將為您的輸入生成一個ID,該ID將以txtNumEmployees

改變這一行:

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

對此:

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

它將起作用,因為這是帶有選擇器屬性結束

1:確保您沒有javascript錯誤。 我看到在變化中缺少'{'。

2:你可以簡單地將'this'作為文本框參考傳遞,並像下面一樣更新它:

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

然后只需將值設置為:

$(control).val(data);

3:還有其他方法可以獲取如此處所示的asp.net元素。 在jquery中查找ASP.NET ClientID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM