gpt4 book ai didi

javascript - jQuery 验证 : Group Validation But Not Field Validation

转载 作者:行者123 更新时间:2023-11-28 10:09:43 24 4
gpt4 key购买 nike

我正在使用 jquery 验证并且我已经设置了组。但是,我无法找出分别验证每个组及其包含的各个字段的最佳方法。

为了说明这一点:

我有城市、州和邮政编码(按顺序)。如果有人输入 zip 的值,他们应该得到肯定的确认(我已经让该部分在输入处使用绿色复选标记),但是,只要状态和 zip 为空,组验证消息仍然应该显示。

经过多次尝试,我遇到了以下问题:- 用户跳过“城市”和消息显示的验证,但是当为“zip”提供输入时,验证消息消失。 (这很奇怪......也许是一个错误?)- 用户输入“城市”,他们甚至在进入“州”之前就收到组错误消息- 用户输入“城市”,但不会获得复选标记,因为组中的其他输入为空

我倾向于通过覆盖“onfocusout”事件(通过让它检查 focusout 组中的所有输入)来解决这个问题,但不确定是否有更好的方法通过一些验证的内置方法

谢谢!

*更新

我提出的解决方案相当丑陋,而且没有一个能够一致地工作,下面是一个例子,它导致与我上面列出的第一个问题相反的结果。现在,验证消息仅在填写组中的最后一个字段时显示。

也许组验证依赖于组中最后一次测试的验证结果?

无论如何......这是我到目前为止遇到的困惑:

设置组:

groups : { location : 'city state zip' }

为组创建规则(注意它必须是一个数组以保留顺序):

rules : { location : ['city, 'state', 'zip']}

现在覆盖 onfocusout:

    onfocusout : function(el) {
var groups = this.groups
, elName = el.name
, elGroup = groups[elName]
, $el = $(el)

if (!this.checkable(el) ){
this.element(el));
}

// If the element belongs to a group, validate all elements in the group
// that come before the current element
if (elGroup) {
var groupMembers = this.settings.rules[elGroup];

for (var i=0; i<groupMembers.length; i++) {
if ( groupMembers[i] === elName ) {
break;
}
this.element( $('[name="' + groupMembers[i] + '"]') );
}
}
}

最佳答案

这个插件的“组”功能似乎有一些仍然悬而未决的问题,其中一些看起来与您的问题有关。

https://github.com/jzaefferer/jquery-validation/issues/search?q=groups

关于javascript - jQuery 验证 : Group Validation But Not Field Validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629493/

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