Javascript 当用户使用Jquery单击enter键时,如何触发该按钮?
我有一个 文本框(id=txtFilterValue), 添加按钮(id=btnAdd)和 表(id=queryTable) 一旦用户在文本框中输入值,他们可以按enter键。因此,当他们按下enter键时,它应该调用jquery中已经定义的添加按钮 这就是我试过的 Jquery代码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
//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) {
// ...