2013-12-13 1 views
0

Как правильно проверить значение параметра, которое использует Select2? У меня проблема, когда какое-то значение задается перед тем, как перейти на любой другой. Он выглядит правильно, но ошибка проверки отображается до тех пор, пока я не изменю значение. Спасибо за любую помощь.jQuery Select2 & Validation Engine

+0

Можете ли вы продемонстрировать этот вопрос с какой-то код? Я не могу представить, что вы имеете в виду. –

ответ

1

Попробуйте это решение.

How to make jQuery validation engine works well for select2()?

+0

Обратите внимание, что [ссылки только ответов] (http://meta.stackoverflow.com/tags/link-only-answers/info) обескуражены, ответы SO должны быть конечной точкой поиска решения (vs. еще одна остановка ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra

1

В select2.js файл

Найти эту (линия 341)

if (this.indexOf("select2-") !== 0) { 

И заменить

if (this.indexOf("select2-") !== 0 && this !== "validate[required]") { 
0

У меня была такая же проблема. Таким образом, в select2.min.js найти этот инсульты (должно быть 2 ходов в сценарии):

D(this.container,this.opts.element,this.opts.adaptContainerCssClass)

и добавить этот код сразу после инсульта вы нашли

,this.container.removeClass("validate[required]")

это должно решить вашу проблему.

0

Добавьте этот css в свой тег заголовка.

.has-error { 
     border-color: #dd4b39 !important; 
    } 

и вот как я вызываю select2 для механизма проверки JQuery.

$("#form").validate({ 
      ignore: ".ignore, .select2-input", 
      rules: { 
       txtproduct: "required", 
       txtwarehouse: "required", 
       //txtdescription: "required", 
       txtquantity: {required:true,number:true}, 
       txtrate: {required:true,number:true}, 
       txtdiscounttype: "required", 
       txtdiscount: {required:true,number:true}, 
       txtamount: {required:true,number:true}, 
      }, 
     highlight: function (element, errorClass, validClass) { 
       $(element).addClass("has-error"); 
       if($(element).hasClass('select2-hidden-accessible')) 
       { 
        $(element).next().find("[role=combobox]").addClass('has-error'); 
       } 
      }, 
      unhighlight: function (element, errorClass, validClass) { 
       $(element).removeClass("has-error"); 
       if($(element).hasClass('select2-hidden-accessible')) 
       { 
        $(element).next().find("[role=combobox]").removeClass('has-error'); 
       } 
      } 
     }); 

}

+0

Ответы на простой код не принимаются для переполнения стека. Не могли бы вы объяснить, что делает ваше решение и как оно решает проблему. –

+0

Привет, Neol это JQuery Validation Engine Issue, который не поддерживает библиотеку select2, и я использовал его, используя строку условий, и она отлично работает для меня. if ($ (element) .hasClass ('select2-hidden-available')) { $ (element) .next(). Find ("[role = combobox]"). RemoveClass ('has- ошибка «); } –

 Смежные вопросы

  • Нет связанных вопросов^_^