asp.net TextBoxで自動ポストバックが発生し、EnterまたはTabキーを押さずにTextBoxにテキストを入力するとSeverサイドイベントが発生するようにします。これは可能ですか?そうであれば、3または4などの特定の文字数を入力した後にのみこれを行うことは可能ですか?ありがとうございました。EnterまたはTabキーを押さずにTextBoxにテキストを入力して自動ポストバックを行う
答えて
TextChange
JavaScriptのblur
イベントになるイベントです。これは、コントロールを離れるとき(クライアント側のテキストボックスが入力またはテキストエリア)、値が変更されたときにのみポストバックを発生させることができることを意味します。だからこそ、これは不可能です。
しかし、あなたのアーキテクチャ(サーバーに情報をポストバックする方法)については、私はそれがバディを動作させないと言わなければなりません。ポストバックは本当に高価なので、できるだけ避けてください。私の提案は、ajaxと入力ボックスのkeydownイベントを組み合わせて使用することです。
これは、Ajax & onkeypressイベントと何らかの種類のカウンタを使用して行うことができます。
したがって、発生するたびにカウンタをインクリメントするtextareaのonKeyPressイベントに関数を配線します。この数が3または4になると、バックグラウンドでフォームをサーバーにポストするajax関数を呼び出します再度カウンターをリセットしてください。
これはそうです...バックスペースなど、入力し、スペース -
これは、フォームは、すべてのキー入力でテキストエリアの使用中に発生したすべての第三または第四のキープレス、バックグラウンドで掲示されるようになります悪い考えのようですが、...
キープレスで読み込んだJavaスクリプトを持っていないし、特定の文字制限に達したときに投稿を開始しませんか?
Key Press Event Ajaxまたは単にsubmitが有効です。
- 別のポスターのように見えますが、私はパンチに殴られました。
WindowsアプリケーションとWebアプリケーションを比較することはできません。ユーザーが文字を入力したときにサーバーにポストバックするとは、すべてのHTMLをASP.NETから再作成してクライアントに返す必要があることを意味します。しかし、ここでは一例です:
ASPX:
<script type="text/javascript">
var MIN_TEXTLENGTH = 3;
function checkPostback(ctrl) {
if (ctrl != null && ctrl.value && ctrl.value.length >= MIN_TEXTLENGTH) {
__doPostBack(ctrl.id, '');
}
}
</script>
<asp:TextBox ID="TextBox1" OnKeyUp="checkPostback(this);" AutoPostBack="true" OnTextChanged="TextChanged" runat="server"></asp:TextBox>
分離コード:あなたは本当にすべてのサーバー上に投稿したい
Protected Sub TextChanged(ByVal sender As Object, ByVal e As EventArgs)
TextBox1.Attributes.Add("onfocus", "javascript:this.value=this.value;")
TextBox1.Focus()
End Sub
、ユーザが第四/第三始まる入力したchar型? –