jQuery Tools Validator:不是必需的,但测试是否为空

时间:2011-10-19 17:15:02

标签: javascript jquery validation jquery-tools

我正在使用the Validator from jQuery Tools来验证我的表单(为什么jquery工具?因为它们是轻量级的并且使用语义HTML5标签,输入类型和参数进行验证)但我有一个问题: 我想让jQuery Tools Validator仅在输入字段为非空时测试/验证输入字段 - 但该字段不是必需的。

在必须进行测试/验证的字段上,我可以使用required="required"并验证...现在我有一个文本输入字段,用户可以输入URL,这个字段不是必需的但是如果用户将一些数据添加到该字段中,该字段应使用pattern="https?://.+"进行验证以确保用户输入有效的URL ...如果我添加了pattern-parameter且没有required-parameter,则jQuery Tools Validator会测试/尽管如此,我仍然无法提交表格,直到我输入有效的网址 - 即使我根本不想输入网址!

3 个答案:

答案 0 :(得分:3)

您可以尝试修改正则表达式以允许空字符串,例如

pattern="^(?:|https?://.+)$"

答案 1 :(得分:1)

你是否有任何理由与jquery工具验证器绑定?我在http://bassistance.de/jquery-plugins/jquery-plugin-validation/

取得了巨大的成功

例如,我添加了一个自定义jQuery验证器字段:

jQuery.validator.addMethod("unittype", function(value, element) { 
    return jQuery('#fuel option:selected').val() in unitOptions && value in unitOptions[jQuery('#fuel option:selected').val()];
});

jQuery('#fuel').rules("add", {
    fueltype:true,
    messages:{
        fueltype:"Please select a fuel type"    
    }
});

这只是我的代码中的一个示例,只需将正则表达式替换为方法。

答案 2 :(得分:0)

如果您将表单字段指定为

<input type='url'/>

然后jQuery Tools Validator将需要一个有效的网址 - 你不应该推出自己的网址正则表达式。

如果你没有标记所需的字段,那么验证者只应检查字段是否为非空;如果我理解正确,那就是你(OP)想要的行为。