我有一个简单的HTML格式的文件。使用jquery验证HTML表单吗?
<form action="register.php" method="get" id="submitform">
First Name:
<input type="text" class="fb-input" name="fname" id="firstname" />
<br>
<div class="fb-error">
</div>
<input type="button" name="signupBtn" id ="sub" value="Sign upw">
</form>
当我按下提交按钮,这将在jquery中检查,如果该字段为空。
$(document).ready(function(){
$("#sub").click(function(){
register();
});
});
function register(){
var firstname=$("#firstname").val();
if(firstname==""){
$(".fb-error").show().html("You must fill the fields.");
}else{
$(".fb-error").hide();
$("#submitform").submit();
}
}
然后被检查后,它将被提交到PHP文件进一步检查的形式输入的字符,然后如果无效字符会发现它会响应。
我想要的是,我在php文件中提交页面后所做的检查将在jquery中传输。例如:
function register(){
var firstname=$("#firstname").val();
if(...){
<?php
if(preg_match(....)){....}
?>
}else{
.....
}
}
我试过了,它没有工作。我想我不能把PHP里面的jQuery。我想把php放在jquery中的原因是我能够在HTML的div部分显示一条错误消息,因为一旦我提交了页面,就会跳转到另一个空白页面,其中php错误消息显示向上。
即时通讯的作用就像Facebook的注册表一旦您提交并输入错误的字符,错误信息将显示在底部。我们需要使用php,jquery只是可选的。
任何人都可以帮助我吗?或者可以建议一个更好的方法来做到这一点?
更新时间:
HTML代码:
<html>
<head>
<title>Facebook Registration</title>
</head>
<body>
<form action="register.php" method="get" id="submitform">
First Name:
<?php $fname = isset($_POST['fname']) ? $_POST['fname'] : ''; ?>
<input type="text" class="fb-input" name="fname" value="<?php echo $fname; ?>">
<br>
<div class="fb-error">
</div>
<input type="submit" name="signupBtn" id ="sub" value="Sign upw">
</form>
php文件:
<?php
$fname=$_GET['fname'];
if((preg_match("/^[a-zA-z]{1,}$/",$fname))){
echo "registered";
}
else{
var_dump($_POST);
echo "<form id='retForm' method='post' action='index.php'>";
echo "<input type='hidden' name='fname' value='$_POST[fname]'>";
echo "<script>$(document).ready(function() { $('#retForm').submit() });</script>";
}
?>
当您的PHP脚本在提交中检测到任何错误时,您可以重定向用户以再次填写表单。您可以简单地以该形式回显相关的错误消息。 – Antony
你也可以在javascript中使用正则表达式。 – Rembunator
@Antony是可能的,当我重定向输入值的形式仍然会保持? – Katherine