Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax验证表单字段_Javascript_Php_Jquery_Html_Validation - Fatal编程技术网

Javascript 使用ajax验证表单字段

Javascript 使用ajax验证表单字段,javascript,php,jquery,html,validation,Javascript,Php,Jquery,Html,Validation,我确实有一个jquery代码来验证我的表单,但不幸的是,它不是那么准确。我想彻底验证字段,只接受电话字段上的号码和电子邮件字段上的有效电子邮件地址 另外,我想在用户键入/输入值时显示错误(或者只添加一个红色边框一个字段),而不单击submit按钮,因此它看起来像一个实时检查器 任何人都可以得到我的脚本,我真的不相信这一点。如果你认为我的php代码是错误的,那么也推导它。希望了解如何使用会话,这样用户每次会话只能提交一次 代码: $(函数(){ $('.cbf')。关于('submit',函数(

我确实有一个jquery代码来验证我的表单,但不幸的是,它不是那么准确。我想彻底验证字段,只接受电话字段上的号码和电子邮件字段上的有效电子邮件地址

另外,我想在用户键入/输入值时显示错误(或者只添加一个红色边框一个字段),而不单击submit按钮,因此它看起来像一个实时检查器

任何人都可以得到我的脚本,我真的不相信这一点。如果你认为我的php代码是错误的,那么也推导它。希望了解如何使用会话,这样用户每次会话只能提交一次

代码:


$(函数(){
$('.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>