1

かみそりのビューにhtmlテキストボックスがあります

<input type="text" id="txtComments" name="txtComments" placeholder="Enter your comments"
                                    style="width: 500px; height: 50px;" />

Enterキーを押すと、ajax jquery呼び出しを行い、データを保存します。ただし、テキストボックスに入力することはできません。を何かに変更すると、他のid="txtComments"場所に入力できます。

私が間違っていることは何ですか?

スクリプトファイルを追加しました:

$("#txtComments").keypress(function (e) {
    var comments = "";
    e.preventDefault();
    var code = e.keyCode ? e.keyCode : e.which;
    if (code == 13) {
        comments = $("#txtComments").val();
        var request = $.ajax({
            url: "/Home/SaveCommentsData",
            type: "POST",
            data: { 'CommentEntered': comments },
            dataType: "json",
            success: function (data, textStatus) {
                if (textStatus) {
                    $('#enteredComments').append('<span>' + comments + '</span>');
                    alert("Comment Saved");
                }
            },
            error: function (textstatus) {
                alert(textstatus);
            }
        });
    }
});
4

2 に答える 2

2

これは、この場合は入力preventDefault()しているイベントのデフォルト アクションを防止する which を使用しているためです。

$("#txtComments").keypress(function (e) {
     var comments = "";
     // e.preventDefault();

ステートメントを if ステートメントに移動できます。

$("#txtComments").keypress(function (e) {
     var comments = "";
     if (e.which == 13) {
        e.preventDefault();
        comments = this.value;
于 2013-02-25T12:21:30.660 に答える
1

これは、キーを押すたびにデフォルトの防止を使用しているためです。

Enterキーを押しているときにのみ実行する必要があります

if (code == 13) {
   e.preventDefault()
   //...
}

ここにフィドルがあります: http://jsfiddle.net/johanhaest/q36Gg/

于 2013-02-25T12:24:13.107 に答える