2012-04-17 4 views
0

DotNetNukeフレームワークにascxコントロールを使用して、ユーザーが電話番号をテキストボックスに入力できるようにしました。入力マスク(999)999-9999と、国際番号を入力できるように入力マスクのオン/オフを切り替えるチェックボックスが必要です。 私はChromeをテストしたときにasp.net ajaxコントロールツールキットにいくつか問題があったので、jquery.maskedinput-1.3.min.js拡張機能を使ってjQueryを試してみましたが、私は初めてです。 スクリプトセクションに次のコードを追加しますが、チェックボックスは1回だけ有効です。 これは、テキストボックスが更新パネルにあるためだと思います。チェックボックスに自動ポストバックが有効になっていますが、そのイベントをキャプチャしてJavaScriptを強制的にリロードする方法はわかりません。更新パネルで照会入力マスクをオフ/オフに切り替える必要があります

jQuery(document).ready(function() { 
     jQuery(".primarymask").mask("(999) 999-9999"); 

     jQuery("input[name=ckbIntPrimaryPhone]").click(function() { 
      if (jQuery(this).is(":checked")) { 
       jQuery(".primarymask").mask(""); 
      } 
      else { 
       jQuery(".primarymask").mask("(999) 9999-9999"); 
      } 
     }); 
    }); 

以下のコードを使用してjs関数を繰り返してみましたが、クリックしてから元に戻ります。

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_endRequest(function() { 

}

答えて

1

をリフレッシュする\:

あなたのascxファイル/ ASPXコードファイル

にこのコードを入れてください
<asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" syncPostBackTimeout="70" runat="server" /> 

<script language="javascript" type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(update_start); 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(update_end); 
    function update_start(sender, args) { 
     // code here executes when update panel begins to update 
    } 

    function update_end(sender, args) { 
     // code here executes when update panel is done updatinging 
    } 
</script> 
+0

これは、どこに何を入れるかを示すテンプレートに過ぎません。 –

+0

これは更新パネルでうまくいきました。私は日付入力テキストボックスのためにそれを使用しましたが、telerikを使用して終了しました:RadMaskedTextBoxは、マスクのオン/オフを切り替える必要があるフィールドです。楽しい楽しい楽しい – chuckb35

0

使用__doPostBack( 'updatePanelId')MSAjaxあなたはこれを試すことができUpdatePanelの