我有一个带action="result.php
的html表单。
现在的问题是,我希望我的表单只有在我的javascript中的某些函数返回result.php
时才进入true
并且我有这个来实现这一点,
function init() {
var form1 = document.getElementById("test");
if (validat() == true){
form1.onsubmit = validatequiz;
}
}
window.onload = init;
validat
函数返回true
或false
,所以在上面的函数中我检查它的返回值并执行onsubmit
,但即使值返回我的validate()
函数为false,我仍然被重定向到result.php
,我不想这样做。
问题是,操作是在html文件中设置的,我正在检查外部javascript文件中的表单,我不允许在html文件中使用内部javascript,这就是为什么我遇到这个问题。
答案 0 :(得分:1)
您的Javascript没有做任何事情来阻止提交操作完成。要停止提交表单,您需要使用
在Javascript中明确停止它return false;
或
event.preventDefault();
问题:如何阻止浏览器的默认操作? JavaScript事件处理程序?
答:在JavaScript的早期,要防止默认 对一个事件的回应,你可以简单地从错误中重新出现错误 各个事件处理程序例如,从一个返回false onsubmit事件处理程序会阻止浏览器提交 形成;从链接的onclick事件处理程序返回false会 阻止浏览器关注链接。在大多数现代浏览器中 像上面这样的行为仍然有效;但是,现在还有更多 支持的事件类型,实际行为可能取决于 浏览器和事件类型。