使用jqueryvalidation和选择的插件validation选择框
我试图一起使用validation和选择的插件。 我在validation选择框时遇到了问题。 我发现了类似的问题如何使用“选择”插件进行jQueryvalidation? 和Chosen.js并validationjquery但我找不到将解法导入我的代码的方法:
jquery代码
$("#save").click(function () { if($("#producteditform").validate({ ignore: [], rules: { nameedit: { required: true, maxlength:100 }, unitedit:{ required: true, } } }).form() ) { // do sth }) } }
html渲染输出
当我删除class =’selected’当点击保存按钮时一切正常,否则我得到错误未捕获错误:无法validation,发现没有指定名称的元素。 请参阅控制台以获取元素参
尝试这样的事情。
$(document).ready(function() { // initialize the plugin on DOM ready $("#producteditform").validate({ // all rules and options, rules: { nameedit: { required: true, maxlength:100 }, unitedit:{ required: true, } } }); // test for valid form $('#save').on('click' function() { if($("#producteditform").valid()) { // do this on valid form } else { // do this on invalid form } }); });
$('#producteditform').validate()
初始化 form
上的validate插件 。
$('#producteditform').valid()
编程方式触发实际validation测试并返回true/false
布尔值。
或者,由于您的event
是表单, click
submit
事件,您只需使用内置的submitHandler
回调函数。 (无需创建另一个click
处理程序。)
$(document).ready(function() { // initialize the plugin on DOM ready $("#producteditform").validate({ // all rules and options, rules: { nameedit: { required: true, maxlength:100 }, unitedit:{ required: true, } }, submitHandler: function(form) { // do this on valid form } }); });
完整文档:
http://docs.jquery.com/Plugins/Validation
在您显示HTML输出而不是PHP之前,以下是如何validationselect
元素的一般示例:
重要的是, select
元素中的第一个或默认option
必须包含value=""
否则required
规则将失败。
编辑 :
我仍然没有足够的代码来制作一个有效的演示。 但是,由于chosen
插件隐藏了实际的表单元素,因此您必须执行以下操作…
1)定位要validation的实际表单元素并传递数据,而不是chosen
创建的可视元素。
2)通过设置ignore: []
选项启用jQuery Validate以处理隐藏的元素 。
试试这个…
$(document).ready(function () { // initialize the plugin on DOM ready $("#producteditform").validate({ // all rules and options, ignore: [], // <-- option so that hidden elements are validated rules: { name: { // <-- name of actual text input required: true, maxlength: 100 }, unit:{ // <-- name of actual select input required: true } }, submitHandler: function(form) { // do this on valid form } }); });
发生这种情况是因为Chosen插入了一个输入字段,用户可以通过下拉列表进行搜索。
出于某种原因,此搜索字段没有名称标记(因此错误):
输入也没有类或ID,这可能是控制台错误如此模糊的原因。 快速解决方法是给它一个名字:
$(".chzn-search input").attr('name', 'chzn-search');