2011-08-10 7 views
1

javascriptを使用してリアルタイムの電話番号検証を実行しようとしています。私は妥当性確認の助けは必要ありません。私はちょうどその値をテキストボックスからJavascript変数に引っ張る助けが必要です。MVC2 - テキストボックスの値をJavascriptにプルしようとしています

しかし、ページの読み込み中に、「名前 'txtPhone'が現在のコンテキストに存在しません」というエラーが表示されます。私はMVC2にテキストボックスを宣言するのはここ

は次のとおりです。同じページで

<div class="editor-field"> 
    <%: Html.TextBoxFor(model => model.phone, new { id = "txtPhone", onblur = "checkPhoneNumber();" })%> 
    <%: Html.ValidationMessageFor(model => model.phone) %> 
</div> 

、私はこのJavaScriptを持っている:

function checkPhoneNumber() { 
    var phone = $("#<%= txtPhone.ClientID %>").value; 
} 

私がコメントアウトした場合txtPhoneの参照をJavaScriptで、ページがロードされ、IDがテキストボックスに正しく割り当てられていることがわかります(ソースの表示から):

<div class="editor-field"> 
    <input id="txtPhone" name="phone" onblur="checkPhoneNumber();" type="text" value="" /> 

答えて

1

MVCが使用しないASP.Netサーバーコントロールで作業しようとしています。
ASP.Netサーバー側のコントロールは、生成されたHTML内で一意のIDを生成するため、ClientIDのみ必要です。

ASP.Net MVCはサーバー側のコントロールを作成しません。 TextBoxForはそのままあなたが提供するIDを使用します。あなたは

document.getElementById('myText')

でテキストボックスへの参照を取得することができますが、あなたは(たぶんjQueryの)フレームワークを使用しているように見えるストレートJavascriptを使用して

+0

私はJavascriptから「ClientID」という接尾辞を削除する必要がありますか? – WEFX

+0

ありがとうございます。あなたは正しかった、私はちょうど$( "#txtPhone")を必要とした。val()。 – WEFX

1

?あなたはjQueryのを使用している場合、私はあなたがしようとしているように動作しなければならない値を設定し、テキストボックスへの参照を取得したら構文は、いずれかの方法

$("#txtPhone")

であると考えています。

関連する問題