Javascript 当用户使用Jquery单击enter键时,如何触发该按钮?

Javascript 当用户使用Jquery单击enter键时,如何触发该按钮?,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有一个 文本框(id=txtFilterValue), 添加按钮(id=btnAdd)和 表(id=queryTable) 一旦用户在文本框中输入值,他们可以按enter键。因此,当他们按下enter键时,它应该调用jquery中已经定义的添加按钮 这就是我试过的 Jquery代码 //Preventing ENTER Key $('#form1').on('keyup keypress', function (e) { var keyCode = e.keyCode || e

我有一个

文本框(id=txtFilterValue),

添加按钮(id=btnAdd)和

表(id=queryTable)

一旦用户在文本框中输入值,他们可以按enter键。因此,当他们按下enter键时,它应该调用jquery中已经定义的添加按钮

这就是我试过的

Jquery代码

    //Preventing ENTER Key
$('#form1').on('keyup keypress', function (e) {
    var keyCode = e.keyCode || e.which;
    if (keyCode === 13) {
        //$('input[name = btnAdd]').click();
        $("#btnAdd").trigger('click');
        e.preventDefault();
        return false;
    }
});
上面的代码将阻止enter键,它将调用Add按钮

正如我所认为的那样,它正在发挥作用。但是它调用了两次,并且值增加了两次。不应该加两次

当我直接单击Add按钮时,它只在我的表中输入一条记录

这是我的按钮添加代码

    //Filter Query Add to TABLE and TEXTBOX
$("#btnAdd").click(function () {
    
    var selectedField = $("#FilterField option:selected").text();
    var operator = $("#ddlOperator :selected").val();
    var filterValue = $("#txtFilterValue").val();
    var query;
    var textFilterRecord = $("#txtFilterRecord").val();

    //values seperated by COMMA
    var arrayTxtConditionValue = filterValue.split(',');

    if (operator == 'equalTo') {
        
        if ($("#txtFilterRecord").val().length == 0) {

            //put the single quotation( ' ) in between values
            var filterCommaValue = '';
            for (var i = 0; i < arrayTxtConditionValue.length; i++) {
                if (i == 0) {
                    filterCommaValue = filterCommaValue + "'" + arrayTxtConditionValue[i] + "'";
                }
                else {
                    filterCommaValue = filterCommaValue + ",'" + arrayTxtConditionValue[i] + "'";
                }
            }

            query = selectedField + ' IN(' + filterCommaValue + ') ';
            $("#txtFilterRecord").val($("#txtFilterRecord").val() + query);

            $("#queryTable > tbody:last-child").append('<tr><td class="FieldNameID">' + selectedField + '</td><td class="OperatorID"> IN(' + filterCommaValue + ')</td></tr>');
        }
        else {

            var filterCommaValue = '';
            for (var i = 0; i < arrayTxtConditionValue.length; i++) {
                if (i == 0) {
                    filterCommaValue = filterCommaValue + "'" + arrayTxtConditionValue[i] + "'";
                }
                else {
                    filterCommaValue = filterCommaValue + ",'" + arrayTxtConditionValue[i] + "'";
                }
            }

            var radioButton = $('input[name=group]:checked').val();
            query = radioButton + ' ' + selectedField + ' IN(' + filterCommaValue + ') ';
            $("#txtFilterRecord").val($("#txtFilterRecord").val() + query);

            $('#queryTable > tbody:last-child').append('<tr><td class="FieldNameID">' + radioButton + ' ' + selectedField + '</td><td class="OperatorID"> IN(' + filterCommaValue + ')</td></tr>');
        }
    }
});
//过滤器查询添加到表和文本框
$(“#btnAdd”)。单击(函数(){
var selectedField=$(“#过滤器字段选项:选定”).text();
var运算符=$(“#ddl运算符:选定”).val();
var filterValue=$(“#txtFilterValue”).val();
var查询;
var textFilterRecord=$(“#txtFilterRecord”).val();
//用逗号分隔的值
var arrayTxtConditionValue=filterValue.split(',');
如果(运算符=='equalTo'){
if($(“#txtFilterRecord”).val().length==0){
//将单引号(')放在两个值之间
var FilterCommavue='';
对于(变量i=0;itbody:last child”).append(“+selectedField+”中的“+selectedField+”);
}
否则{
var FilterCommavue='';
对于(变量i=0;itbody:last child”)。在(“+FilterCommavue+”)中追加(“+radioButton+”+selectedField+”);
}
}
});
在这里,您正在侦听具有相同回调的两个事件。这意味着,每当其中一个出现时,就会调用回调。由于它们都与键事件相关(两者几乎相同),因此回调将被调用两次

因此,只需像这样移除其中一个:

$('#form1').on('keypress', function (e) {
    // ...

为什么是负号?。。
$('#form1').on('keypress', function (e) {
    // ...