关于jQuery内联表单验证的问题

时间:2011-09-04 10:09:50

标签: javascript jquery validation

这是我正在尝试使用的jQuery内联表单验证的链接 http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

一切看起来都不错,但我遇到了一个小问题

我有一个输入,我使用这种验证

'validate[length[6,15]]'

它检查输入值的长度是否为数量,如果它小于6或更大,那么15则给出错误。

现在我想要的是添加输入值为length length = 0的机会,因此验证不会触发任何错误消息。

这可能吗?

更新

这是提交阻止功能

<script type='text/javascript'>
  $(document).ready(function() {
$('#standart_form').validationEngine();
 $('#standart_form').submit(function() {
  return false;
 });
 });
  </script>

现在当我使用这个'validate[length[6,15]]'时,一切都运转良好。但是,如果我尝试使用新的自定义函数,整个表单会自行破坏我的基于ajax的应用程序。

1 个答案:

答案 0 :(得分:1)

您正在使用的插件不支持开箱即用,但其自定义功能允许您自己实现该行为。

例如,您可以指定在验证字段时使用的正则表达式。您需要将其添加到翻译文件中:

"emptyOrLengthBetween6And15": {
    "regex": /^$|^.{6,15}$/,
    "alertText": "* Empty, or between 6 and 15 characters long"
},

然后你可以在custom验证器中引用它:

class="validate[custom[emptyOrLengthBetween6And15]]"

您也可以编写自己的验证功能:

function checkEmptyOrLengthBetween6And15(field, rules, i, options)
{
    var val = field.val();
    if (val.length > 0 && (val.length < 6 || val.length > 15)) {
        return "* Empty, or between 6 and 15 characters long";
    }
}

然后在funcCall验证器中使用它:

class="validate[funcCall[checkEmptyOrLengthBetween6And15]]"