我希望当用户从fiel中输入用户名时,它会从process.php验证并在验证后显示结果在名称字段前面。 我希望当用户从contry中选择英国它显示英国城市,如果选择印度然后显示印度城市如何可以使用jquery和如果任何fiel eppty它显示错误
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JQuery Form Example</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#myform").validate({
debug: false,
rules: {
name: "required",
email: {
required: true,
email: true
}
},
messages: {
name: "Please let us know who you are.",
email: "A valid email will help us get in touch with you.",
},
submitHandler: function(form) {
// do other stuff for a valid form
$.post('process.php', $("#myform").serialize(), function(data) {
$('#results').html(data);
});
}
});
});
</script>
<style>
label.error { width: 250px; display: inline; color: red;}
</style>
</head>
<body>
<form name="myform" id="myform" action="" method="POST">
<!-- The Name form field -->
<div id='name'> </div>
<label for="name" id="name_label">Username</label>
<input type="text" name="name" id="name" size="30" value=""/>
<br>
<!-- The Email form field -->
<div id='email'> </div>
<label for="email" id="email_label">Email</label>
<input type="text" name="email" id="email" size="30" value=""/>
<br>
<!-- The Country form field -->
<div id='Select_option'> </div>
<label for="country" id="country_label">Contry</label>
<select name="contry">
<option value="uk">uk</option>
<option value="india">india</option>
</select>
<br>
<!-- The Country form field -->
<div id='uk_city'> </div>
<label for="ukcity" id="ukcity_label">uk city</label>
<select name="uk_city">
<option value="u0">u0</option>
<option value="u1">u1</option>
</select>
<br>
<!-- The Country form field -->
<div id='ind_city'> </div>
<label for="indcity" id="indcity_label">ind city</label>
<select name="ind_city">
<option value="i0">i0</option>
<option value="i1">i1</option>
</select>
<br>
<!-- The Submit button -->
<input type="submit" name="submit" value="Submit">
</form>
<!-- We will output the results from process.php here -->
<div id="results"><div>
</body>
</html>
答案 0 :(得分:1)
首先,大多数验证都应该在i js上进行,以便为简单的事情(例如空字段或无效输入(年龄字段中的字母))保存服务器往返。
然后使用ajax来验证返回包含success = true或success = false的json对象的表单,以及一个带有对象的数组,该对象指示哪些字段有错误以及错误是什么。
您可以避免使用$ .ajax命令发布表单,只发送您需要验证的字段。
还记得不信任js验证,只有服务器端验证不受篡改。
通常,您创建一个服务器端会话,您将登录设置为true,以防止用户绕过登录直接转到特定页面。