我有一个同样形式的ajax和完整请求。鼠标单击会在输入字段中触发ajax,如果我在鼠标单击后立即在相同的输入字段上按Enter键,则会弹出一个令人讨厌的错误,如下所示。
“Http Transport返回了一个0状态代码。这通常是混合ajax和完整请求的结果。出于性能和数据完整性的原因,这通常是不受欢迎的。”
在我的例子中,输入字段是一个使用ajax的单选按钮。按Enter键会导致完整请求。 我使用了BalusC的Javascript函数,它具有event.stopPropagation(),它对我有用,它用于文本输入字段。它也适用于下拉列表。 但同样的event.stopPropagation()不适用于单选按钮。 您可以查看BalusC's answer以供参考。
以下是我的代码片段似乎不起作用
<h:form id=blah...... onkeypress="enterToChange(event)">
....
</h:form>
Javascript功能
function enterToChange(event){
if (event.keyCode==13 && event.target.id.match('radiobutton_id'){
event.stopPropagation(); // Don't bubble up.
event.preventDefault(); // Prevent default behaviour (submitting the form).
event.target.onchange(); // Trigger onchange where key was actually pressed.
}
}
我使用firebug来查看if子句中的语句是否已执行,但错误仍然由于某种原因而弹出,并立即呈现整个页面。在任何情况下我都需要避免错误。
任何答案都非常感谢。 感谢
答案 0 :(得分:2)
Enter必须提交。因此,如果事件keyCode为13且事件目标id与单选按钮的匹配,则提交按钮的onclick事件应触发返回false的JS函数。