我写了一个自定义方法来验证价格是否有效。例如。没有字母等因此我写了一个自定义方法。但我不知道如何传递价值。
方法:
function checkIsPriceValid(input)
{
alert(input);
return false;
}
表单验证
$(function () {
jQuery.validator.addMethod("checkIsPriceValid", function (value, element) {
return checkIsPriceValid();
//check whether checkbox dist and algo is checked
}, "Invalid number");
$("#addProductForm").validate({
errorPlacement: function (error, element) {
//error.appendTo(element.prev());
error.insertAfter(element);
},
rules: {
productName: {
required: true
},
productCategory:{
required: true
},
productDescription: {
required: true
},
productOrginalPrice:{
required: true,
checkIsPriceValid: this.val()
}
答案 0 :(得分:0)
编辑 - 抱歉我对第一个Param错了(仍然不完全确定它的确切含义)。 我从来没有使用过该插件,但看看是否有效:
$(function () {
jQuery.validator.addMethod("checkIsPriceValid", function (value, element) {
return checkIsPriceValid(value, element);
//check whether checkbox dist and algo is checked
}, "Invalid number");
你应该
function checkIsPriceValid(value, element)
{
alert(value);
return false;
}
对于验证方法:
$("#addProductForm").validate({
...
productOrginalPrice:{
required: true,
checkIsPriceValid: "Price is invalid"
}
虽然我没有使用过这个插件,但只是查看文档和其他示例,这个插件有一个非常丑陋的API。 JQuery Tools验证器是更好的IMO。
答案 1 :(得分:0)
您在addMethod
中使用的名称完全是任意的,不必匹配表单中的任何内容。
首先需要在方法内的checkIsPriceValid
调用中传递至少一个参数。我正在使用value
,因为这是您想要测试的内容。
jQuery.validator.addMethod("checkIsPriceValid", function (value, element) {
return checkIsPriceValid(value);
//check whether checkbox dist and algo is checked
}, "Invalid number");
function checkIsPriceValid(value){
return value /* some test*/ ? true :false;
}
然后在validate.rules
对象中,您通过添加方法名称来使用该方法,但是以与您使用的其他规则相同的方式分配true
的值,如'required'
productOrginalPrice:{
required: true,
checkIsPriceValid: true
}