jQuery 使用动态名称验证自定义方法规则和消息?

jQuery validation custom method rule and message with dynamic name?

我有一个验证规则,我想使用变量 varFunctionID 添加它,它表示自定义验证方法。它不是查找变量的值,而是搜索一个名为 varFunctionID 的函数,该函数不存在。如何确保使用变量的值而不是名称?另外,我不能使用名称代替变量。

var varFunctionID = "nameOfMyCustomValidationFunction";

$('#myField').rules('add', {
    varFunctionID: true
    },
    messages: {
        varFunctionID: "My message."
    }
});

* 编辑 * 无法使名称动态化。处理这种需求的方法是给验证方法传入一个参数,像这样:

$('#myField').rules('add', {
    myFunction: { myParm: "parm" }
    },
    messages: {
        myFunction: "My message."
    }
});

jQuery.validator.addMethod("myFunction", function (value, element, options) {
            var passParm= options.myParm;
});

不确定为什么需要做这样的事情。在编写您的 OP 时,完全不清楚为什么您不能首先使用自定义方法的实际名称。

你不能按照你的要求去做。您需要在 .rules() 方法中使用自定义方法的 actual 名称。


编辑:我之前建议的解决方法不可行。

自定义方法并不意味着有一个 "dynamic" 名称,我不确定为什么名称需要是动态的。自定义方法已创建,您可以将其分配给一个或多个字段,也可以不分配。关于此函数的任何 "dynamic" 都将通过传入自定义参数来处理。

See .addMethod() method documentation.