<tr class="fis">
Test: <input type="text" name="test" id="test" value="Test">
<tr class="fis">
Empty: <input type="text" name="empty" id="empty">
<input type="button" value="find" id="find">
$('#find').click(function() {
alert('wont work if any other fields are filled other than TEST');
});
$('#test').change(function() {
// needs to fill the form for other functionality
$('#empty').val('empty');
alert('change');
});
所以这里我有第一个输入被'更改'时填充的字段
但如果他们在第一个字段输入并点击“查找”按钮,我不希望它运行[更改]。
我想知道是否有办法做到这一点。根据我的发现,如果点击它,“更改”会发生在“查找”按钮之前。
我已经尝试将“更改”更改为“焦点”并将其提供给其他字段,因此第一个字段没有事件处理程序,但这可能会给我带来麻烦。
我需要填写字段,但如果用户点击查找按钮,我不希望它们被填充。
答案 0 :(得分:0)
mousedown
事件在change
事件之前触发,因此通过使用该事件和jQuery的data()
方法,您可以设置一个标记,以查看activeElement
是否实际上{ {1}}单击查找按钮时,如果是,则不设置值:
#test
答案 1 :(得分:0)
仍然不确定你想要什么。也许这会有所帮助。
var frm = $('form')[0]; //assuming you have one form on that page
var fnd = $('#find');
fnd.click(function(){
var te = 0, fe = 0;
if(frm.elements[0].value !== '')te = 1;
for(var i=1,l=frm.length; i<l; i++){
if(frm.elements[i].value !== '')fe = 1;
}
if(fe === 1){
return false;
}
else{
// do your thing here
return true; // some editors show an error if you don't always return a value
}
});
$('#test').change(function(){
if(fnd.val() !== ''){
return false;
}
else{
// do your thing here
return true;
}
});
答案 2 :(得分:0)
我找到了答案。使用e.stopPropagation(); on $('#find')允许我停止发生.change()