【问题标题】:Validate combobox with jquery easyui使用 jquery easyui 验证组合框
【发布时间】:2013-06-07 19:39:59
【问题描述】:

在我的页面中,有两个插件:jquery validatejquery easyui .. 我使用 jQuery Validate 来验证表单中的数据输入。 并且我使用 jQuery EasyUI 自定义了一个组合框,允许在组合框中搜索数据。

所以,我把验证插件:

$("#form1").validate({
        rules:{
            filename:{
                required: true,
                minlength: 3
            },
            leia:{
                required: true
            }
        }
    });

没关系!是的工作! 但是当我放置easyUI插件并在组合框'leia'中设置类时,'leia'的验证并没有更多工作。

<form id="form1" action="" method="post">
        <div>
                <label>Name:</label>
                <input type="text" name="filename" />
        </div>
        <div>
                <label>Leiame:</label>
                <select name="leia" class="easyui-combobox">
                        <option value=""></option>
                        <option value="1">Java</option>
                        <option value="2">C</option>
                        <option value="3">C#</option>
                        <option value="4">PHP</option>
                </select>
    </div>

        <input id="submit-go" type="submit" name="add" value="Add" />
</form>

当我在“leia”中下课时,验证有效! 有人可以帮帮我吗?

提前谢谢你

【问题讨论】:

  • 你为什么不使用 easyui 本身的验证而不是使用其他验证插件.. 请参阅 validatebox 文档...
  • 好的!我正在努力做到这一点!谢谢!
  • 我不能使用 validatebox,因为 jquery validate 更好,提供更多资源...所以,我想使用 jquery validate 和 jquery easyui ...

标签: jquery validation combobox jquery-validate jquery-easyui


【解决方案1】:

您需要做的就是允许 jQuery Validate 在隐藏元素上执行。 EasyUI 只是隐藏了选择并用自己的元素替换它,但最终会在幕后更新您的选择。为了使这项工作:

$("#form").validate({
    ignore:'',//by default it ignores hidden inputs, so setting this to blank overrides that
    rules: {              
        leia: {
          required: true
        }
      },
      errorPlacement: function(error,element){
        if (element.hasClass('combo-value')){
            element.closest("span.combo").after(error);
        } else {
            element.after(error);   
    }   }       
});

我还添加了 errorPlacement 函数,它将错误消息移动到简单的 UI 标记之外(否则它会被隐藏在带有 overflow:hidden 设置的范围中)。

在这里查看它的工作原理:http://jsfiddle.net/ryleyb/B5XX7/2/

【讨论】:

  • 感谢莱利!很好!但不要显示 'leia' 输入的错误消息。请参阅:$("#form").validate({ ignore:'', rules:{ leia:{ required: true } }, // 错误消息消息:{ leia:{ required: "请选择一个项目" } } });
  • 消息错误显示在“leia”输入中发生错误时...但在其他输入中,错误消息不显示..参见:$("#form").validate ({ ignore:'', rules:{ filename:{ required: true, minlength: 3 }, leia:{ required: true } }, messages:{ filename:{ required: "Required", minlength: "至少输入 3 characters" }, leia:{ required: "请选择一个项目" } }, errorPlacement: function(error,element){ element.closest("span.combo").after(error); } });跨度>
  • 如您所见,在“文件名”输入中,错误消息不显示...仅在“leia”输入中显示错误消息
  • 我明白了。您应该查看errorPlacement 的工作原理。我已对其进行了编辑以解决此问题,但您也应该真正尝试理解它。
猜你喜欢
  • 1970-01-01
  • 2012-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
相关资源
最近更新 更多