当我的JS代码加载时,我调用以下代码,这会向所有文本输入添加一个onkeypress
事件:
$('#myForm input[type=text]').keypress(function(event) {
sysOnEnter(event, $('#myForm input[type=text]').attr('id'), modalId);
});
功能sysOnEnter
是在用户按下Enter/Return
键时单击一个按钮:
function sysOnEnter(event, id, modalId) {
var key = event.key || event.keyCode;
if (key == 'Enter' || key == 13) {
var val = $('#' + id).val();
setTimeout(function() {
if ($('#' + id).val() == val)
document.querySelector('#' + modalId + ' .btn-primary').click();
},0);
event.preventDefault();
return false;
}
}
我不希望发生这种情况的时间是在使用Google的自动建议地址表格时:
<input
id = "autocomplete"
class = "form-control"
placeholder = "Start typing..."
onFocus = "initAutocomplete();geolocate();"
type = "text"
>
是否有一种简单的方法可以将这个特定字段从javascript函数中排除?
答案 0 :(得分:3)
使用选择器:not(#autocomplete)
排除ID为autocomplete
的元素:
$('#myForm input[type=text]:not(#autocomplete)').keypress(function(event) {
console.log('firing event');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
<input type="text">
<input type="text">
<input type="text" id="autocomplete" placeholder="autocomplete">
<input type="text">
</form>
答案 1 :(得分:2)
如果您要排除的字段是事先已知的,则可以使用JQuery .not():
<script type="text/javascript" >
function func(id) {
HFTargetSign = id;
alert(HFTargetSign);
}
</script>