我需要帮助才能使用jquery验证我的联系表单。我正在关注来自youtube h ttp://www.youtube.com/watch?v=8wUu7pWBygY&feature=relmfu
的示例虽然它只对我使用一个字段起作用,但是,如果想要添加一个字段来使用解决方案进行验证,它就不再起作用了。
这是我的标题:
<script type="text/javascript" >
$(document).ready(function() {
//$('.error-div').load('action/validate_signup.php').show();
$('#fname').keyup(function() {
$.post('action/validate_signup.php', { fname: form.fname.value },
function(result){
$('#fname-error').html(result).show("slow");
});
});
$('#lname').keyup(function() {
$.post('action/validate_signup.php', { lname: form.lname.value },
function(result){
$('#lname-error').html(result).show("slow");
});
});
});
</script>
这是我的验证过程,假设是:
<?php
$fname = $_POST['fname'];
$lname = $_POST['lname'];
if(empty($fname)){
echo " *First Name Required";
}elseif(strlen($fname)<=3){
echo "*Name too short!";
}else{
echo "<img src='images/check.jpg' />";
}
if(empty($lname)){
echo " *Last Name Required";
}elseif(strlen($lname)<=3){
echo "*Lastname too short!";
}else{
echo "<img src='images/check.jpg' />";
}
?>
请帮助,提前感谢并提供更多权力
答案 0 :(得分:3)
问题是您要么为验证脚本提供fname
或lname
,要么不提供两者。您的验证脚本将始终返回错误。
我建议使用isset
功能检查脚本是否已提供fname
或lname
,然后再使用empty
进行检查。
答案 1 :(得分:0)
使用客户端验证在这里看起来更好。在放置jquery标记时,如何使用http://docs.jquery.com/Plugins/Validation?
答案 2 :(得分:0)
由于他们都使用相同类型的验证(检查长度是否大于3),只需使用一个函数来检查它。也可以使用html5来创建所需的字段,这样它就不会被提交到服务器,除非它被填写。
HTML:
<input type="text" id="lname" required/>
脚本:
$('#lname').keyup(function(){
var lname = $.trim($(this).val());
$.post('check.php', {'value' : lname}, function(data){
$('#lname-error').html(result).show("slow");
});
});
这是check.php:
$valid = check_length($_POST['value']);
echo $valid;
function check_length($str){
$clean_string = mysql_real_escape_string($str);
if(str_len($clean_string ) <= 3){
//return error message
}else{
//return check mark
}
}