您好我正在尝试动态验证我的注册表单,以便在用户使用jquery和php将值输入到输入字段时进行检查。非常感激任何的帮助。
html
<DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Tutorial</title>
</head>
<body>
<form>
<input type="text" id="fname" size ="25" placeholder="firstname" />
<span id="fname_feedback"></span></br></br>
<input type="text" id="lname" size ="25" placeholder="firstname" />
<span id="lname_feedback"></span></br></br>
<input type="submit" id="reg" value="sign up">
</form>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/reg.js"></script>
</body>
</html>
jquery
function validate(fname, lname){
$.post('php/registration.php', {fname: fname, lname: lname}, function(data){
$('#fname_feedback').text(data.fname);
$('#lname_feedback').text(data.lname);
;
},'json');
}
$('#fname').focusin(function(){
if($('#fname').val() ==='') {
$('#fname_feedback').text('requried field');
} else {
validate($('#fname').val());
}
}).blur(function() {
$('#fname_feedback').text('');
validate($('#fname').val());
}).keyup(function(){
validate($('#fname').val());
});
$('#lname').focusin(function(){
if($('#lname').val() ==='') {
$('#lname_feedback').text('requried field');
} else {
validate($('#lname').val());
}
}).blur(function() {
$('#lname_feedback').text('');
validate($('#lname').val());
}).keyup(function(){
validate($('#lname').val());
});
php
<?php
require '../init.php';
$fname_error= '';
$lname_error='';
if(isset($_POST['fname']))
{
$fname = $_POST['fname'];
//updated if statement
if (strlen($fname) < 5)
{
$fname_error = 'example error message';
} else {
$fname_error = 'example';
}
}
if(isset($_POST['lname']))
{
$lname = $_POST['lname'];
//updated if statement
if (strlen($lname) < 5)
{
$lname_error = 'example error message';
} else {
$lname_error = 'example';
}
}
$return_data=array('fname'=> $fname_error, 'lname'=>$lname_error);
header('Content-Type: application/json');
echo json_encode($return_data);
exit();
?>
答案 0 :(得分:3)
你需要使用jquery的parseJSON函数来使用返回数据,所以在验证函数中这样的行会是这样的
var obj = jQuery.parseJSON(data);
$('#fname_feedback').text(obj.fname);
我需要像这样添加控制器
<?php
require '../init.php';
$fname_error= '';
if(isset($_POST['fname']))
{
$fname = $_POST['fname'];
//updated if statement
if (strlen($fname) < 5)
{
$fname_error = 'example error message';
}
}
$return_data=array('fname'=> $fname_error);
header('Content-Type: application/json');
echo json_encode($return_data);
exit();
?>