大虾们,遇见一个问题希望和大家探讨下,最近在玩validate插件验证,虽然玩的不好,但是基本的还是会得,目前遇见一个问题,我很多页面都存在一个相同的控件,我比较懒,就希望在一个我自己写得js文件中验证这个控件的输入,
代码如下:
//验证
$(function() {    //公共验证规则开始
    var opt = "{ rules:{";
    if ($("#txt_vin").attr("id") != undefined) {//防止找不到txt_vin后报错
        opt += "txt_vin: {required:true, specialChar: true },"
    }
    if ($("#txt_vid").attr("id") != undefined) {
        opt += "txt_vid: { required:true,specialChar: true },"
    }
    if ($("#txt_vis").attr("id") != undefined) {
        opt += "txt_vis: { required:true,specialChar: true },"
    }
    opt = opt.substring(0, opt.length - 1);
    opt += "}}";
    //验证控件输入
    $("#form1").validate(opt);
})
发现不行
但是我debugger跟踪到这个opt的代码,然后加载到单个页面去验证却是ok的。
但是就是放到我自定义的js文件中当提交的时候却无法捕获进行验证,求解啊!。

解决方案 »

  1.   

    $("#form1").validate(opt);
    你拼起来之后是字符串 而参数是json 转换一下
      

  2.   

    opt=(new Function("return "+opt))();
    $("#form1").validate(opt);
      

  3.   

    ifandui 兄,够细心啊。可是我尝试通过substring来过滤掉前后的"但是还是不行。请问该怎么转换呢?
      

  4.   

    2楼已经写好了 "abc" 怎么过滤" 字符串里根本就没有" 即便有过滤完 还是字符串
      

  5.   

      //公共验证规则开始
        var opt = "{ rules:{";
        if ($("#txt_vin").attr("id") != undefined) {//防止找不到txt_vin后报错
            opt += "txt_vin: {required:true, specialChar: true },"
        }
        if ($("#txt_vid").attr("id") != undefined) {
            opt += "txt_vid: { required:true,specialChar: true },"
        }
        if ($("#txt_vis").attr("id") != undefined) {
            opt += "txt_vis: { required:true,specialChar: true },"
        }
        opt = opt.substring(0, opt.length - 1);
        opt += "}}";
        
         opt = (new Function("return " + opt))();    //验证控件输入
        $("#form1").validate(opt);
      

  6.   

    = =行了 晕死,缓存问题!谢谢ifandui兄!