给出了具有单个文本字段的表单。提交处理程序绑定在表单上,并在文本字段上绑定更改/焦点/模糊处理程序。
当在文本字段中输入内容并单击提交按钮时,仅在Firefox中注册了更改/焦点/模糊事件,而在Safari中,两者都已注册。
表格:
<form id="form1" action="" method="get">
<input id="text1" name="text1" type="text" />
<input id="submit1" name="submit1" type="submit" />
</form>
Jquery代码:
$(document).ready(function(){
$('#text1').change(function(){ alert("1"); });
$('#form1').submit(function(){ alert("2"); });
});
在Firefox中:警告“1”。 在Safari中,警告“1”,然后警告“2”。
如何让Safari中的行为在Firefox中运行?
答案 0 :(得分:0)
这里的问题看起来像是由alert
引起的。
如果您运行不带alert
的代码或将其更改为console.log
,则代码的行为与预期一致,同时触发更改和提交事件。
$(function() {
$('#text1').change(function() {
console.log("change");
});
$('#form1').submit(function() {
console.log("submit");
return false;
});
});
由于您不想在生产代码中使用alert
,因此您应该能够在不做任何更改的情况下获得结果。