Javascript 使用ajax验证表单字段
我确实有一个jquery代码来验证我的表单,但不幸的是,它不是那么准确。我想彻底验证字段,只接受电话字段上的号码和电子邮件字段上的有效电子邮件地址 另外,我想在用户键入/输入值时显示错误(或者只添加一个红色边框一个字段),而不单击submit按钮,因此它看起来像一个实时检查器 任何人都可以得到我的脚本,我真的不相信这一点。如果你认为我的php代码是错误的,那么也推导它。希望了解如何使用会话,这样用户每次会话只能提交一次 代码:Javascript 使用ajax验证表单字段,javascript,php,jquery,html,validation,Javascript,Php,Jquery,Html,Validation,我确实有一个jquery代码来验证我的表单,但不幸的是,它不是那么准确。我想彻底验证字段,只接受电话字段上的号码和电子邮件字段上的有效电子邮件地址 另外,我想在用户键入/输入值时显示错误(或者只添加一个红色边框一个字段),而不单击submit按钮,因此它看起来像一个实时检查器 任何人都可以得到我的脚本,我真的不相信这一点。如果你认为我的php代码是错误的,那么也推导它。希望了解如何使用会话,这样用户每次会话只能提交一次 代码: $(函数(){ $('.cbf')。关于('submit',函数(
$(函数(){
$('.cbf')。关于('submit',函数(e){
e、 预防默认值();
var name=$('#name').val();
var phone=$('#phone').val();
var email=$('#email').val();
如果(名称==“”){
警报(“请提供有效名称”);
$('#name').addClass('error');
}
else if(电话==“”){
警报(“请提供有效的电话号码”);
$('#phone').addClass('error');
$('#name').removeClass('error');
}
如果出现其他情况(电子邮件==“”){
警报(“请提供有效电子邮件”);
$('#email').addClass('error');
$(“#phone”).removeClass('error');
}
否则{
$.ajax({
键入:“post”,
url:'index.php',
数据:$('.cbf')。序列化(),
数据:“name=“+name+”&phone=“+phone+”&email=“+email,
成功:函数(){
警报('我们将很快与您联系!谢谢!');
},
完成:函数(){
$('.cbf')。每个(函数(){
this.reset();//此处表单字段将被清除。
});
}
});
$('#email').removeClass('error');
}
});
});
请尝试以下代码:
$("#signupform").validate({
rules: {
email: {
required: true,
email: true
},
mobile: {
required: true,
number: true,
minlength: 10,
maxlength: 10
}
},
messages: {
email: {
required: "Please enter a valid email address.",
email: "Invalid Email Address."
},
mobile: {
required: "Please provide a mobile number.",
minlength: "Your mobile number must be 10 characters long.",
maxlength: "Your mobile number must be 10 characters long.",
number: "Please Enter number only."
}
}
});
下面是一个简单的jQuery验证:
表格:
<form id="myform">
email<input type="text" name="field1" />
<br/>
password<input type="text" name="field2" />
<br/>
<input type="submit" />
</form>
最好在服务器端和客户端都进行验证。客户端验证,然后向用户显示错误。在服务器端,您需要再次验证,因为恶意用户可能会更改您的JS代码
一个使用手机的简单示例
//client side
var phone = $('#phone').val();
//validate
if(/^\d+$/.test(phone) === false){ //not number
alert('Your phone number is not valid');
}
//on server side
$phone = $_POST['phone'];
if(is_numeric($phone)){
insert $phone into database.
}
另一种方法是使用HTML5和新标签,如:“email”和“tel”(目前不支持tel):
电子邮件:
<input type="email" name="email" required>
即使是您选择的解决方案,您也必须为您的案例在服务器端使用Php进行控制
这不是解决方案,但在未来,我认为我们应该使用这些标签
更多信息:
//client side
var phone = $('#phone').val();
//validate
if(/^\d+$/.test(phone) === false){ //not number
alert('Your phone number is not valid');
}
//on server side
$phone = $_POST['phone'];
if(is_numeric($phone)){
insert $phone into database.
}
<input type="tel" name="phone" required>
<input type="email" name="email" required>