3

私はこれらのルールを持つテキストボックスを持っています: 1) セッションでディクショナリから textbox.text を入力します 2) ユーザーが新しい値を入力すると、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 はデータ値を正しく返します。問題は最後の行にあります。

これを設定するために多くの方法を試しましたが、どれもうまくいかないようです。簡単な問題のはずですが、まだうまくいきません。

4

2 に答える 2

1

1:JavaScriptエラーがないことを確認します。onchangeに'{'がありません。

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.NETClientIDを検索します

于 2012-10-26T20:52:08.593 に答える
1

問題は、ASP.NET が .NET ではない ID を生成することtxtNumberEmployeesです。ASP.NET は、入力の ID を生成し、末尾はtxtNumEmployees.

この行を変更します。

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

これに:

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

これはAttribute Ends with Selectorであるため、機能します。

于 2012-10-26T19:30:13.373 に答える