1

ユーザーがテキストボックスにタブで移動するかクリックしたときにテキストボックス範囲を含むポップアップを表示し、ユーザーがasp.netに範囲外の値を入力した場合に検証する方法は? 現在、js と css を使用して z-index を使用してパネルを表示していますが、検証は行っていません。より良い方法はありますか?

Ajax Validator コントロールを試しましたが、ユーザーがテキスト ボックスを離れたときにのみポップアップするようです。また、テキストボックスは動的に作成されます。

4

1 に答える 1

0

テキストボックスの範囲が固定されている場合は、javascriptのみを使用する必要があります。動的コンテンツの検証が必要な場合は、ajaxを使用してWebメソッドまたはWebサービスを呼び出す必要があります。マークアップは次のようになります

<asp:ScriptManager ID="ScriptManager1" runat="server" 
  EnablePageMethods="true" />
<script language="javascript">
 function UpdateTime() {
   PageMethods.GetCurrentDate(OnSucceeded, OnFailed); 
 }

 function OnSucceeded(result, userContext, methodName) {
   $get('Label1').innerHTML = result; 
 }

 function OnFailed(error, userContext, methodName) {
   $get('Label1').innerHTML = "An error occured.";
 }
</script>
<asp:Label runat="server" ID="Label1" Text="Update Me!" /><br />
<input type="button" id="Button2" value="Web Method Update" 
  onclick="UpdateTime();" />

スクリプトマネージャのページメソッドを有効にし、ページに書き込まれたメソッドをPageMethods.YourMethodName(JavascriptMethodIfCallingSuccess、JavascriptMethodOnError);として呼び出す必要があります。以下のようにc#でページバックコードを書くことができます

[WebMethod]
public static string GetCurrentDate()
{
  return DateTime.Now.ToLongDateString();
}

これで、JavaScriptのサーバーから戻り値を取得します。検証が常に修正され、サーバー側の検証が不要な場合は、この方法を使用しないでください。ページとサーバーに不要な負荷がかかる可能性があります。

于 2013-03-02T18:46:22.853 に答える