1

我的剃刀视图中有一个 html 文本框

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

在点击输入时,我正在进行 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

这是因为您在每次按键时都使用了阻止默认值,

您只需要在按下回车键时执行此操作

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

这是一个小提琴:http: //jsfiddle.net/johanhaest/q36Gg/

于 2013-02-25T12:24:13.107 回答