开发者社区> 问答> 正文

jQuery Validate 多个文本域的问题

同一个页面a.php
分别请求`a.php?t=1;
a.php?t=2;`

我使用jQuery Validate 来js判断文本域的有效性和数据提交.
问在同-个页面a.php上,有一个文本域someinput,
如何在以上两次不同的请求后,提交动态设置文本域的rule,使t=1需要判断,t=2不需要判断?
是不是用这个方法:Validate.addMethod???

展开
收起
小旋风柴进 2016-03-23 14:18:49 2001 0
1 条回答
写回答
取消 提交回答
  • 其实除了可以用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'
    }});
    });
    2019-07-17 19:10:58
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载