【问题标题】:Negative one (-1) passing validation in jQuery Validate plugin. Fix?在 jQuery Validate 插件中通过验证的负数 (-1)。使固定?
【发布时间】:2012-01-30 21:18:32
【问题描述】:

我有一个下拉框,其中第一个选项值为“-1”,我希望验证失败但正在通过。

<option value="-1">Select Option</option>
<option value="optionOne">Select Option</option>
<option value="optionTwo">Select Option</option>

如何在 jQuery 验证插件 (http://docs.jquery.com/Plugins/Validation) 中失败?

【问题讨论】:

  • 如何进行验证?
  • 我假设在 jQuery 插件的某个地方,它会像这样检查值是否为空:if(value == ""){//not valid}else{//valid}。我希望它检查以下内容:if(value == "" || value == "-1"{//not valid}else{//valid}。任何人都知道我可以在哪里执行此操作插件?我理解的有点大。
  • 需要查看您的验证配置。另外,您是否使用浏览器的 JS 调试器进行单步调试?此外,还有一个名为 debug 的验证选项也可能对您有所帮助。

标签: jquery forms jquery-validate validation


【解决方案1】:

这是您使用的验证插件吗:bassistance.de

如果是这样,那么您可以使用以下命令强制出现required 错误:

<select id="myselect" class="required error">
<option value>Select Option</option>
<option value="optionOne">Select Option</option>
<option value="optionTwo">Select Option</option>
</select>

只要您不需要将 Select Option 值显式设置为 -1,此功能就可以工作。

更新

由于您需要值为-1,因此您可以编写自己的自定义验证器:

jQuery.validator.addMethod("validator-class", function(value, element){
        // validate
    return validity;
}, "Error Message");

所以在你的情况下,使用你提供的验证:

jQuery.validator.addMethod("choose-option", function(value, element){
        return ! (value == "" || value == "-1");
}, "Please select an option");

【讨论】:

  • 是的,这就是插件。但该值需要设置为“-1”。
  • 不错!我在插件中的什么地方放置这个函数?
  • 如果你还有插件自带的additional-methods.js文件,那么你可以把它放在那里,或者你可以把它放在你自己的文件里。请务必在验证插件之后包含它。
  • 精氨酸。出于某种原因,我无法让它工作。也许我遗漏了一些明显的东西?
  • 您是否将验证类添加到&lt;select&gt;
【解决方案2】:

尝试添加custom method,如下所示:

jQuery.validator.addMethod("your_select", function(value, element) { 
  return value != -1; 
}, "Please select something");

看到它在工作here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多