表单onsubmit只有在Javascript中才能工作
我最近开始做表单验证,我试图理解一些东西。我还没有在SE的其他地方找到这个 当元素中有onsubmit=returnvalidateForm或onsubmit=validateForm时,表单不做任何事情。但是,当我从表单标记中删除onsbuit,而在JS文件中执行document.forms[favorite].onsubmit=function validateForm时,它可以正常工作 我让它工作了,但我试图理解为什么html中onsubmit的正常方法不起作用 以下是我的代码,供参考: HTML:表单onsubmit只有在Javascript中才能工作,javascript,html,forms,onsubmit,Javascript,Html,Forms,Onsubmit,我最近开始做表单验证,我试图理解一些东西。我还没有在SE的其他地方找到这个 当元素中有onsubmit=returnvalidateForm或onsubmit=validateForm时,表单不做任何事情。但是,当我从表单标记中删除onsbuit,而在JS文件中执行document.forms[favorite].onsubmit=function validateForm时,它可以正常工作 我让它工作了,但我试图理解为什么html中onsubmit的正常方法不起作用 以下是我的代码,供参考:
首先我们定义一个函数,然后我们调用这个函数。在使用window.load定义之前调用该函数。需要在使用window.load之前定义验证函数。对不起,我的英语很差
<script>
window.onload = function () {
function validateForm() {
var input = document.forms["favorite"]["car"].value;
if (input == "") {
alert("You missed an entry");
return false;
}
}
}
</script>
当然,使用onsubmit是必须避免的,因为它混合了表示HTML和逻辑JavaScript。也就是说,如果添加returntrue,onsubmit=returnvalidateForm应该可以工作;到validateForm的结尾,以便它始终返回一个值。这个问题也非常类似于。@MikeMcCaughan好的,我试过了,它很有效,谢谢。
window.onload = function(){
document.forms["favorite"].onsubmit = function validateForm(){
var input = document.forms["favorite"]["car"].value;
if(input == ""){
alert("You missed an entry");
return false;
}
}
}
<script>
window.onload = function () {
function validateForm() {
var input = document.forms["favorite"]["car"].value;
if (input == "") {
alert("You missed an entry");
return false;
}
}
}
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form</title>
<script>
function validateForm() {
var input = document.forms["favorite"]["car"].value;
if (input == "") {
alert("You missed an entry");
return false;
}
}
</script>
</head>
<body>
<form name="favorite" action="#" onsubmit="return validateForm();" method="post">
Favorite Car Brand: <input type="text" name="car">
<input type="submit" value="Submit">
</form>
</body>
</html>