Javascript 具有相同id的多个输入的jquery按键功能

Javascript 具有相同id的多个输入的jquery按键功能,javascript,jquery,asp.net-mvc-4,keypress,Javascript,Jquery,Asp.net Mvc 4,Keypress,大家好,有问题吗 这是我的jquery代码 <script type="text/javascript"> $('#com').keypress(function (event) { var comm = $(this).val(); var keycode = (event.keycode ? event.keycode : event.which); if (keycode == 13) { var

大家好,有问题吗 这是我的jquery代码

<script type="text/javascript">
    $('#com').keypress(function (event) {
        var comm = $(this).val();

        var keycode = (event.keycode ? event.keycode : event.which);
        if (keycode == 13) {
            var comm = $("#com").val();
            alert(comm);
            var hidid = $("#hidid").val();
            alert(hidid);

            $.ajax({
                cache: false,
                type: "POST",
                url: "/Home/postComment",
                datatype: "json",
                data: { comment: comm, hidid: hidid },
                error: function () {
                    alert("error ");
                },
                success: function () {
                    window.location.href = "/Home/Index";
                }
            });
        }
        event.stopPropagation();
    });
</script>

$('#com')。按键(函数(事件){
var comm=$(this.val();
var keycode=(event.keycode?event.keycode:event.which);
如果(键代码==13){
var comm=$(“#com”).val();
警报(通信);
var hidid=$(“#hidid”).val();
警报(hidid);
$.ajax({
cache:false,
类型:“POST”,
url:“/Home/postComment”,
数据类型:“json”,
数据:{注释:comm,hidid:hidid},
错误:函数(){
警报(“错误”);
},
成功:函数(){
window.location.href=“/Home/Index”;
}
});
}
event.stopPropagation();
});
我是这样叫控制器的

[HttpPost]
    public JsonResult postComment(string comment,int hidid)
    {
        Repository<whichOne> _rwo = new Repository<whichOne>();
        Repository<Comment> _rc = new Repository<Comment>();

        int _userId = Convert.ToInt32(Session["_userId"]);

        Comment _comment = new Comment
        {
            userId = _userId,
            comment = comment,
            createDate = DateTime.Now,
            isValid = true,
            whichOneId = hidid,
        };

        _rc.Add(_comment);
        _rc.Save();

        return Json(new { success = true });
    }
[HttpPost]
公共JsonResult后命令(字符串注释,int hidid)
{
Repository_rwo=新存储库();
存储库_rc=新存储库();
int _userId=Convert.ToInt32(会话[“_userId]”);
注释_Comment=新注释
{
userId=\u userId,
注释=注释,
createDate=DateTime。现在,
isValid=true,
whichOneId=hidid,
};
_rc.添加(_注释);
_rc.Save();
返回Json(新的{success=true});
}
我有来自数据库的数据,我试图获取数据的id,并从输入中获取评论

@foreach (var item in Model._mywhichOneHelper)
                {
          @Html.Hidden("hidid",@item.id)
          <input type="text" class="pull-left input-sm form-control" id="com" name="comments" style="border-radius: 12px;" placeholder="Your Comments...">}
@foreach(模型中的变量项。\u mywhichOneHelper)
{
@Html.Hidden(“hidid”,@item.id)
}
然而,我只能在写了一些东西后按enter键时才能到达第一个数据。 Keypress不适用于其他数据我可以为此做些什么


正如您看到的,当我编写并单击enter以首次输入时,它可以工作,但当我尝试对其他数据执行此操作时,什么都没有发生。非常感谢。

这里的问题是,jQuery选择器只查找第一个元素,因为它只希望一个元素具有id(id应该是唯一的)

让多个元素具有相同的id不是一个好的做法-这是问题的一部分。如果可以重新设计标记,使元素具有唯一的id,但共享一个类(如class=“com”),则可以轻松编写jQuery选择器来查找它们。在这种情况下,仍然有一个解决方法,您可以使用jQuery选择器,如:
[id=com]
而不是
#com
,这样可以找到所有匹配的元素,而不是只查找一个(预期的)具有唯一id的元素

还要注意,我必须更改您的事件处理程序,以便它不使用另一个jQuery选择器,而是将值
$self
传递到闭包中,以便它保存正确的唯一实例,而不是始终查找第一个实例

$(函数(){
$(“[id=com]”)。按键(函数(事件){
var$self=$(本);
var comm=$self.val();
var keycode=(event.keycode?event.keycode:event.which);
如果(键代码==13){
var comm=$self.val();
警报(通信);
event.stopPropagation();
}
});
});





相同id的多个输入
我停在这里。ID在文档上下文中必须是唯一的。。。当然,您可以使用属性选择器
$('[id=com]')
,但不可以,请使用带有有效HTML标记的类。顺便说一句,
$(this.val()
编写
this.value