javascript - 错误 jquery 验证插件取决于。当字段无效时表单有效

标签 javascript php jquery forms validation

问题描述

我有一个 Web 表单向导,需要对其进行验证,该验证支持 (a) 隐藏字段和 (b) 条件验证。 Jquery 似乎是最合适的。全部设置如下(简化示例):

$( "form[name=form]" ).validate({
    ...
    ignore: [],
    rules: {
        'form[owner]': {
            required: true,
        },
        'form[bank_account]': {
            required: true, 
            depends: function(element){
                    return $('#my_select').is(':checked');`
    messages : {
        'form[owner]' : {
             required: "The owner is necessary",
        },
        'form[bank_account]' : {
            required: "This field must be filled out when switch on",
         },
    ...
})

错误描述

  1. 我通过提交表单而不填写上面列出的字段来强制验证出错。
  2. 就我而言,由于有向导,我会输出带有警报的消息,因为错误一开始是不可见的。
  3. 我返回表单,仅填写所有者,然后尝试通过提交再次强制验证失败,并选中my_select
  4. 尽管仍有一个字段无效,但验证已通过(并提交了表单),导致服务器端出现错误。

在 JavaScript 控制台上,我收到以下错误:

Cannot read property 'call' of undefined. Exception occurred when checking element form[bank_account], check the method depends

预期结果

所有字段都应根据表单验证每次提交表单时进行相应验证

如何解决这个问题?

最佳答案

因为我没有发现任何与我类似的问题。我找到的解决方案如下:

不要使用 depends 方法,而是使用函数来确定该字段是否应该是必需的,并将其包含在此操作应依赖的条件中(即,如果选中了复选框)或不)

$( "form[name=form]" ).validate({
    ...
    ignore: [],
    rules: {
        'form[owner]': {
            required: true,
        },
        'form[bank_account]': {
            required: function(element){
                    return $('#my_select').is(':checked') && $('form_bank_account').val();
    messages : {
        'form[owner]' : {
             required: "The owner is necessary",
        },
        'form[bank_account]' : {
            required: "This field must be filled out when switch on",
         },
    ...
})

要么文档令人困惑,要么库有错误。

关于javascript - 错误 jquery 验证插件取决于。当字段无效时表单有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48183462/

相关文章:

javascript - 用 Haxe 编写的游戏类 JS 脚本语言?

javascript - IIS 的 web.config 设置是否会干扰 ServiceWorker 缓存?

javascript - 如何为不同的窗口大小用 jquery 替换 img src?

javascript - 用于验证字母和数字的正则表达式无法按预期工作

jquery - 带水印的输入(css & Jquery)

PHP MySql 一个 php 文件中的多个选择查询

php - 无法连接: Access denied for user 'indysoft_admin' @'localhost

php - Docker 应用程序无法访问在另一个容器中运行的 MySQL

javascript - Bootstrap 轮播分页/幻灯片编号问题

javascript - jQuery data() 在更改时监听