部分总结——表单验证
$("#unitEditForm").bootstrapValidator({
excluded: [],
fields: {
phone: {
validators: {
notEmpty: {//检测非空,radio也可用
message: '文本框必须输入'
},
stringLength: {//检测长度
min: 6,
max: 30,
message: '长度必须在6-30之间'
},
regexp: {//正则验证
regexp: /^[a-zA-Z0-9_\.]+$/,
message: '所输入的字符不符要求'
},
threshold: 11, //有6字符以上才发送ajax请求,(input中输入一个字符,插件会向服务器发送一次,设置限制,6字符以上才开始)
remote: {//ajax验证。server result:{"valid",true or false} 向服务发送当前input name值,获得一个json数据。例表示正确:{"valid",true}
url: '/Login/CheckUserTelephoneEmail',//验证地址
data:{userTelephone:$('input[name="usertelephone"]').val() }
},message: '手机号已被注册',//提示消息
delay: 2000,//每输入一个字符,就发ajax请求,服务器压力还是太大,设置2秒发送一次ajax(默认输入一个字符,提交一次,服务器压力太大)
type: 'POST'//请求方式
},
different: {//与指定文本框比较内容相同
field: '指定文本框name',
message: '不能与指定文本框内容相同'
},
emailAddress: {//验证email地址
message: '不是正确的email地址'
},
identical: {//与指定控件内容比较是否相同,比如两次密码不一致
field: 'confirmPassword',//指定控件name
message: '输入的内容不一致'
},
date: {//验证指定的日期格式
format: 'YYYY/MM/DD',
message: '日期格式不正确'
},
choice: {//check控件选择的数量
min: 2,
max: 4,
message: '必须选择2-4个选项'
}
}
},
unit_phone:{
validators: {
callback:{
message: "信息",
callback: function (value, validator) {
var phones = value.split(';');
var num = 0;
//固定电话的正则
var is_phone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
//移动,联通,电信号码正则
var is_mobile = /^((\+?86)|(\(\+86\)))?(13[012356789][0-9]{8}|15[012356789][0-9]{8}|18[02356789][0-9]{8}|147[0-9]{8}|1349[0-9]{7})$/;
for (var i = 0; i < phones.length; i++) {
if (is_phone.test(phones[i].trim()) || is_mobile.test(phones[i].trim())) {
num++;
}
}
if (num == phones.length) {
//不验证,验证通过
validator.updateStatus('unit_phone', 'VALID');
return true;
}
//验证
validator.updateStatus('unit_phone', 'INVALID');
return false;
}
}
}
}
}
}).on('success.form.bv', function (e) {
//验证成功的操作
e.preventDefault();
var $form = $(e.target);
Ajax.ajax({
url: '提交的url',
params: $form.serialize(),
success: function (data) {
//执行完之后的操作
}
});