您好,匿名用户
随意问技术百科期待您的加入

jQuery Validate 多个文本域?

0 投票

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

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

用户头像 提问 2012年 12月1日 @ Talon 上等兵 (294 威望)
分享到:

1个回答

0 投票
 
最佳答案

其实除了可以用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'
}});
});
用户头像 回复 2012年 12月1日 @ Fiddlesticks 上等兵 (242 威望)
选中 2012年 12月1日 @Talon
提一个问题:

相关问题

+1 投票
1 回复 64 阅读
0 投票
1 回复 33 阅读
用户头像 提问 2014年 1月2日 @ Artemis 上等兵 (162 威望)
0 投票
0 回复 27 阅读
用户头像 提问 2013年 9月18日 @ Fizz 上等兵 (325 威望)
0 投票
1 回复 39 阅读
0 投票
1 回复 49 阅读
用户头像 提问 2012年 12月1日 @ Hecarim 上等兵 (361 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...