我是PHP和JavaScript的新手。我想验证表单,如果表单输入字段是正确的,然后将其发送到PHP外部脚本。我尝试过这样的事情:
<head>
<script type="text/javascript">
function Validate(){
var x=document.forms["form"]["firstname"].value;
var y=document.forms["form"]["lastname"].value;
var z=document.forms["form"]["age"].value;
if(x==null || x=="") {
alert("Input name!");
} else if(y==null || y=="") {
alert("Input surname!");
} else if(z==null || z=="") {
alert("Input age!");
} else {
// IS IT POSSIBLE TO SEND FORM HERE FORM VARIABLES TO PHP SCRIPT?
}
}
</script>
</head>
<body>
<form name="forma" action="validate.php" method="post" onSubmit="return Validate()">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>
答案 0 :(得分:1)
由于您没有从函数返回false,因此无论如何都应该提交表单。您可以通过让validate()函数返回false来阻止它被提交。
答案 1 :(得分:1)
您的代码看起来是正确的,除了您可能希望return false
未能阻止表单提交的事实。如果没有返回false,表单将继续提交。
我还认为你可能想要为你的表单命名form
而不是forma
答案 2 :(得分:1)
你应该验证输入服务器端(php),即使你是客户端(javascript)。
您可以通过查看validate.php中的$_POST
来执行此操作:
在您的脚本开头:
if (isset($_POST)) { // form has been sent
if (!isset($_POST['firstname']) || strlen($_POST['firstname'])==0) { // no entry
$e['firstname']='please enter a firstname!'; // prepare error-msg
}
if (!isset($e)) { // no error, continue handling the data
// write data to database etc.
}
}
// in your form...
if (isset($e)) echo "there were errors: ". implode(',',$e);
答案 3 :(得分:1)
您需要输入以下代码:
function Validate(){
var x=document.forms["form"]["firstname"].value;
var y=document.forms["form"]["lastname"].value;
var z=document.forms["form"]["age"].value;
if(x==null || x=="") {
alert("Input name!");
return false;
} else if(y==null || y=="") {
alert("Input surname!");
return false;
} else if(z==null || z=="") {
alert("Input age!");
return false;
} else {
return true;
}
}