为了账号安全,请及时绑定邮箱和手机立即绑定

是不是要用这个方法:Validate.addMethod???

是不是要用这个方法:Validate.addMethod???

慕尼黑的夜晚无繁华 2023-04-14 16:12:12
同一个页面a.php分别请求a.php?t=1;a.php?t=2;我使用jQuery Validate 来js判断文本域的有效性和数据提交.问在同-个页面a.php上,有一个文本域someinput,如何在以上两次不同的请求后,提交动态设置文本域的rule,使t=1需要判断,t=2不需要判断?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

其实除了可以用js调整,也可以用php调整啊,根据$_GET['t']的值输出不同的rule.
特意去看了下jQuery Validate插件,发现可以这样这么做:

<form id="myform">
    <input name="someinput" id="someinput" type="text">
    <button>submit</button></form>

javascript:

$('#myform').validate({rules:{
    someinput:{        <?php if ($_GET['t']==1) :?>
        required:true,
        minlength:3,
        maxlength:15,
        number:true        <?php else :?>
        required:true,
        minlength:1,
        maxlength:5,
        number:true        <?php endif;?>
    }
}});

或者这么做:

function getQueryVariable(variable) {    var query = window.location.search.substring(1);    var vars = query.split('&');    for (var i = 0; i < vars.length; i++) {        var pair = vars[i].split('=');        if (decodeURIComponent(pair[0]) == variable) {            return decodeURIComponent(pair[1]);
        }
    }
}
$(function(){var t = getQueryVariable('t');
$.validator.addMethod("someinput", function(value) {    if(t==1){        return !(value===null || value.length < 2 || value.length > 20);
    }else if(t==2){        return !(value===null || value.length < 5 || value.length > 12);
    }    return false;
}, 'Please enter "someinput"!');

$('#myform').validate({rules:{    someinput:'someinput'}});
});


查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信