select2 和 jquery 验证无法正常工作

2024-04-12

尝试在 select2 上使用验证,但存在一些问题:

  • 错误消息将显示,但在输入有效条目后不会删除。

  • 我正在加载一个工作正常的初始值...但是,验证器无法识别该值并告诉我它无效...我必须手动输入相同的值,然后进行验证,但仍然不会删除显示它有效的错误类别/消息。

form :

<div class="col-md-12 margin-bottom-30 form-group">
    <div class="input-modal-group">
        <label for="vedit-filter" class="f-14"><b>filter :</b></label>
        <input id="vedit-filter" type="text" name="settings[filter]" class="form-control select2"/>
    </div>
</div>
<input id="filter_default" type="hidden" name="settings[original]" value="<?php echo escapeStr($result[filter]); ?>"/>

js :

// get the default filter           
var default_filter = $("#filter_default").val();

$("#vedit-filter").select2({
    //placeholder: "Select or enter...",
    allowClear: true,
    multiple: false,
    ajax: {
        dataType: 'json',
        url: '/process/get_filter_list.php',
        results: function (data) {
            return {results: data};
        }
    },
    createSearchChoice:function(term, data) {
        if ($(data).filter(function() {
            return this.text.localeCompare(term)===0; }).length===0) {
                return {id:term, text:term};
            }
        },
    initSelection : function (element, callback) {
        var obj= {id:default_filter, text:default_filter};
        callback(obj);
    }
});

$('#filters-edit').validate({
    errorElement: 'span', //default input error message container
    errorClass: 'help-block', // default input error message class
    focusInvalid: false, // do not focus the last invalid input
    rules: {
        'settings[filter]': {
            required: true
        }
    },

    messages: {
        'settings[filter]': {
            required: "Filter is required."
        }
    },

    highlight: function (element) { // hightlight error inputs
        $(element)
            .closest('.form-group').addClass('has-error');
    },

    unhighlight: function (element) { // un-hightlight error inputs
        $(element)
            .closest('.form-group').removeClass('has-error'); 
    },

    errorPlacement: function (error, element) {
        error.insertAfter(element.closest('.input-modal-group'));
    },

    // ajax submit
    submitHandler: function (form) {

    ...submit stuff below

默认情况下,字段上的验证仅由这些事件触发(对于type="text"场地)...

  • onfocusout,当用户离开字段时(仅验证该字段)

  • onkeyup,当用户在字段中输入时(仅验证该字段)

  • onclick,当用户点击submit按钮(验证整个表单)

如果您需要在以编程方式更改字段的值后以编程方式触发验证,则需要调用the .valid() method http://jqueryvalidation.org/valid在那个领域。它将有效地触发与上述事件类似的验证。

$('#myField').valid();  // validates just field element with id="myField"

$('#myForm').valid();  // validates the whole form

因此,您需要在 select2 中找到一个方法,每当值更改并放置时都会触发该方法.valid()在那里面。看起来像the change event http://ivaynberg.github.io/select2/就是你需要的。

$("#vedit-filter").select2({
    // your options here
}).on('change', function() {
    $(this).valid();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

select2 和 jquery 验证无法正常工作 的相关文章

  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 如何通过jquery更改元素的类名

    div class bestAnswerControl div class IsBestAnswer div div 我想补充一下 bestanswer some attribute 我想更换class IsBestAnswer div 到
  • 显示覆盖以覆盖整个页面

    我有一个正在加载的网络应用程序iframe 我需要显示一个覆盖 div 来覆盖整个页面 问题是叠加层当前仅显示在iframe区域而不覆盖整个页面 我们的应用程序 子应用程序 是加载的一组应用程序的一部分iframe 你可以做这样的事情 di
  • XHR 不起作用,因为“Access-Control-Allow-Origin 不允许来源”

    我正在使用 Rails 3 开发一个 API 服务器 到目前为止 它非常方便 但我一直遇到错误 我不确定这是因为我的 Apache 设置还是 Rails 应用程序 当我尝试执行 HTTP DELETE 或 PUT 请求时http sampl
  • jQuery 文件上传预览图像

    我正在使用 jQuery 文件上传插件 http blueimp github io jQuery File Upload http blueimp github io jQuery File Upload 用于我的网站的图像上传 我已经看
  • jQuery:如何捕获文本框中的 TAB 按键

    我想捕获 TAB 按键 取消默认操作并调用我自己的 javascript 函数 Edit 由于您的元素是动态插入的 因此您必须使用委托的on http api jquery com on 如您的示例中所示 但您应该将其绑定到 keydown
  • Jquery函数返回值

    我创建了一个函数来迭代 UL LI 这工作得很好 我的问题是将值返回给另一个变量 这可能吗 最好的方法是什么 谢谢 function getMachine color qty getMachine li each function var
  • 添加动态数据时 footable 出现问题

    我需要 jQuery Mobile 方面的一些帮助富表 http css tricks com footable a jquery plugin for responsive data tables 我正在表中动态添加数据 HTML tab
  • 在 Web 浏览器中查找触发 then 事件的 jQuery 代码

    我加入了一个团队来从事一个项目 现在他们使用 jQuery 并且很多 javascript 文件都是外部文件而不是嵌入的 当我点击一个按钮时 它看起来就像 a class button cancel Cancel a 它触发一个在一个 ja
  • 如果我拒绝确认,如何防止更改选择框值

    我正在使用国家 地区选择框 当用户选择一个国家 地区时 会出现添加分支链接 并且用户在该国家 地区下添加分支 但是当用户想要更改国家 地区时 则应销毁有关该国家 地区的所有分支 在更改国家 地区之前 会出现一个确认框并显示警告 一切正常 但
  • jQuery 验证:如何不显示错误?或者如何将错误显示为工具提示?

    我希望我的错误浮动在未验证的输入字段上方 左对齐 我怎样才能做到这一点 如果不能 我怎样才能关闭错误 我仍然希望字段能够验证 并在错误时突出显示 但不希望显示实际的错误消息 我似乎无法在 jQuery 文档中找到任何可以让我打开 关闭它们的
  • jQuery 中的 Javascript .files[0] 属性

    jQuery 中是否有与此语句等效的语句 var value document getElementById id files 0 使用附加 files 0 的标准 jQuery 选择器似乎不起作用 并且我找不到与 files 等效的 jQ
  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 如何通过 HTML 按钮播放声音

    我目前通过网站播放音乐的方法是通过 HTML 音频标签 不过我希望能够通过 HTML 按钮来播放它 该按钮应该能够在播放和停止之间切换音乐 我在 JSFiddle 创建了一个示例 但不知道如何实现它 有人可以告诉我如何使用我的 JSFidd
  • jQuery .val() 返回单选按钮的未定义

    我正在尝试获取 jQuery 中选中的单选按钮值 但它返回的值是 未定义 我搜索了这个问题的解决方案 但对我来说没有任何作用 我的 HTML 代码
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 您如何看待引导模式触发器的相应回调?

    On 引导模态 http getbootstrap com javascript modals 我们知道我们可以为触发器绑定事件 例如show or hide using show shown hide hidden 但此事件绑定仅适用于一
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing

随机推荐