33

次のasp.netテキストボックスコントロールがあります。

<asp:TextBox ID="txtAdd" runat="server" />

ユーザーがこのテキストボックスに何かを書き込んでENTERキーを押した後、コードビハインドからコードを実行したいと思います。

私は何をすべきか?

jQueryを使用してENTER、キーをキャプチャし、非表示のボタンイベントを発生させました

$(document).ready(function(){ 
   $(window).keydown(function(e){
      if(e.keyCode == 13) $('#<% addbtn.ClientID %>'.click();
   }); 
});

もっと良い方法はありますか?

4

11 に答える 11

113
  1. テキストボックスをasp:Panelタグで囲む

  2. やりたいことを実行するクリックイベントを持つボタンを非表示にし、非表示のボタンの ID を持つ属性を指定します<asp:panel>DefaultButton

<asp:Panel runat="server" DefaultButton="Button1">
   <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>    
   <asp:Button ID="Button1" runat="server" style="display:none" OnClick="Button1_Click" />
</asp:Panel>
于 2013-04-25T11:08:13.957 に答える
32

ASPX:

<asp:TextBox ID="TextBox1" clientidmode="Static" runat="server" onkeypress="return EnterEvent(event)"></asp:TextBox>    
<asp:Button ID="Button1" runat="server" style="display:none" Text="Button" />

JS:

function EnterEvent(e) {
        if (e.keyCode == 13) {
            __doPostBack('<%=Button1.UniqueID%>', "");
        }
    }

CS:

protected void Button1_Click1(object sender, EventArgs e)
    {

    }
于 2012-10-31T13:31:28.000 に答える
5

ahaliav fox の答えは正しいですが、コーディングに小さな問題があります。
変化する

<%=Button1.UniqueId%> 

<%=Button1.UniqueID%> 

大文字と小文字が区別されます。Control.UniqueID プロパティ

エラー 14 「System.Web.UI.WebControls.Button」には「UniqueId」の定義が含まれておらず、タイプ「System.Web.UI.WebControls.Button」の最初の引数を受け入れる拡張メソッド「UniqueId」が見つかりませんでした ( using ディレクティブまたはアセンブリ参照がありませんか?)

TextChanged答えを探す前に自分でイベントを試してみましたAutoPostBackが、ほぼ正しいのですが、私が望んでいた結果や質問に対して望ましい結果が得られませんでした。Textboxリターンキーを押したときではなく、フォーカスを失ったときに発生します。

于 2013-04-25T10:15:04.307 に答える
2

私のjQueryを利用したソリューションは以下の通りです:)

テキスト要素:

<asp:TextBox ID="txtTextBox" ClientIDMode="Static" onkeypress="return EnterEvent(event);" runat="server"></asp:TextBox>
<asp:Button ID="btnSubmitButton" ClientIDMode="Static" OnClick="btnSubmitButton_Click" runat="server" Text="Submit Form" />

背後にある Javascript:

<script type="text/javascript" language="javascript">
    function fnCheckValue() {
        var myVal = $("#txtTextBox").val();
        if (myVal == "") {
            alert("Blank message");
            return false;
        }
        else {
            return true;
        }
    }

    function EnterEvent(e) {
        if (e.keyCode == 13) {
            if (fnCheckValue()) {
                $("#btnSubmitButton").trigger("click");
            } else {
                return false;
            }
        }
    }

    $("#btnSubmitButton").click(function () {
        return fnCheckValue();
    });
</script>
于 2013-08-19T07:51:12.590 に答える
1

フォローしてみてください: Aspx:

<asp:TextBox ID="TextBox1" clientidmode="Static" runat="server" onkeypress="EnterEvent(event, someMethod)"></asp:TextBox>    
<asp:Button ID="Button1" onclick="someMethod()" runat="server" Text="Button" />

JS:

function EnterEvent(e, callback) {
        if (e.keyCode == 13) {
            callback();
        }
    }
于 2016-06-23T18:43:54.940 に答える
0
<input type="text" id="txtCode" name="name" class="text_cs">

そしてjs:

<script type="text/javascript">
$('.text_cs').on('change', function () {
var pid = $(this).val();
console.log("Value text: " + pid);
});
</script>
于 2017-01-03T02:39:48.887 に答える
0

このオプションを試してください。

IsPostback をキャッチする前に、Page_Load イベントのコーディング部分を更新します。

 TextBox1.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('ctl00_ContentPlaceHolder1_Button1').click();return false;}} else {return true}; ");
于 2013-05-29T07:04:15.583 に答える
-1

私の 2c ..私は JavaScript を使用しましたが、まったく期待していなかったことがわかりました。

上記の投稿の多くが示唆しているように、パネルの defaultButton 属性/プロパティを使用してください。信頼性が高く (EASY)、テストしたすべてのブラウザーで動作します。

于 2014-10-03T13:49:48.030 に答える