gpt4 book ai didi

position - Position Absolute的jQuery-Validation-Engine-表单字段的条件验证

转载 作者:行者123 更新时间:2023-12-02 03:58:31 26 4
gpt4 key购买 nike

我正在使用Position Absolute的表单验证引擎。

我有一个特定的验证案例,希望可以为我解决。我需要能够根据另一个字段的值来使一个字段成为必需。

例如:

If country.dropdown = "USA", then state.dropdown is required.  

要么
If country.dropdown <> 'USA" then state.dropdown is not required.

您认为使用JQuery验证引擎可以做到吗?如果是这样,您能指出我正确的方向吗?

最佳答案

首先,我必须说,我从未使用过Position Absolute的表单验证引擎,
但我对您的问题很感兴趣。
从文档(https://github.com/posabsolute/jQuery-Validation-Engine),您似乎必须创建一个自定义验证功能。

我在这里创建了一个工作提琴:http://jsfiddle.net/5pKjW/6/

即使它可行,我也不是完全满意,因为在第584行的验证引擎中,由于这种情况,需要“前哨值”。

// If the rules required is not added, an empty field is not validated
if(!required && field.val() == "" && !errorMsg) options.isError = false;

这是带有自定义功能的select的标记:
<select class="validate[funcCall[checkCountry]]" type="text" name="state" id="state">
<option value="none" ></option>
<option value="CALIFORNIA" >CALIFORNIA</option>
<option value="NEW ENGLAND" >NEW ENGLAND</option>
<option value="TEXAS" >TEXAS</option>
</select>

这是验证器的初始化:
jQuery("#formID").validationEngine({
'customFunctions': {
'checkCountry': function (field, rules, i, options){
if ($('#country').val() === 'USA' && field.val() === 'none') {
return options.allrules.required.alertText;
}
}
}
});

1)首先,您必须定义一个验证函数,该函数可以是全局的,也可以作为插件的参数传递的(如我上面所述)。定制函数接受以下输入:字段,规则,i,选项。
您没有对表格的引用,仅对当前字段有引用。
因此,如果要访问另一个字段,则必须像往常一样使用jQuery选择它(在示例中:$('#country'))。

2)检查确认条件。在此示例中,如果发生以下情况,它将失败:
$('#country').val() === 'USA' && field.val() === 'none'

如果不符合条件,则该函数必须返回String。在示例中,我在options.allrules.required中返回了标准消息。文档说明了如何为自定义功能定义自定义消息。

如您所见,由于
if(!required && field.val() == "" && !errorMsg) options.isError = false;

验证引擎中的第1行,开发人员被迫使 if内部的条件失败,并且将所需条件设置为true或将错误消息设置为falsy值是不正确的。因此,唯一的方法是制作 field.val() != ''
因此,标记中的第一个option元素具有前哨值 none,而不是为空。这不是一个干净的解决方案,甚至可能无法轻松实现(我不知道您是否自己生成标记(如果不生成标记,事情会变得更加困难,您需要通过javascript来处理表单,验证引擎初始化之前))。

这不是一个干净的解决方案。
一个更好的解决方案是使用 condRequired,如果它只接受一个自定义函数,而不是仅检查是否已填充其自变量之一。

关于position - Position Absolute的jQuery-Validation-Engine-表单字段的条件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com