我正在尝试验证文本框是否填充了某些文本。如果没有输入任何字符,警报(alert("Name must be filled out");
)运行良好,但是条件,当输入某些字符(else window.location.href = 'http://www.w3schools.com';
)时,不会转发到网址。
请问一些方法吗?提前谢谢。
<html>
<head>
<script>
function validateForm() {
var x = document.forms["registration"]["name"].value;
if (x == null || x == "") {
alert("Name must be filled out");
return false;
} else window.location.href = 'http://www.w3schools.com';
}
</script>
</head>
<body>
<form name="registration" method="post" >
Name <input type="text" name="name" />
<br>
<button type="Submit" name="submit" onClick="validateForm()" >Submit</button>
</form>
</body>
</html>
&#13;
答案 0 :(得分:1)
您提供的实时代码段实际上并未重现问题,因为表单提交已被阻止:
阻止表单提交到“http://stacksnippets.net/js”,因为表单的框架是沙盒,并且未设置“允许表单”权限。
在其他地方,它不会转发到URL,因为在JavaScript运行完毕后,表单会提交触发新页面加载的内容(这会替换为触发的location
分配新值的新页面加载)
您需要从false
函数返回onclick
或不使用提交按钮来触发JS。
答案 1 :(得分:0)
感谢大家的回答,我通过更改按钮“类型”来解决问题
<button type="button" name="submit" onClick="validateForm()" >Submit</button>