2013-03-04 4 views
1

Я использую jQuery Validation Plugin, и я хотел бы иметь возможность динамически определять errorElement на основе типа элемента с ошибкой. Я знаю, что вы можете errorElement так:jQuery Validate plugin динамически выбирает элемент ошибки

$("form").validate({ 
    errorElement: "div" 
}); 

Однако, я хотел бы быть в состоянии изменить его так, что если тип был кнопкой флажка или радио, то я мог бы сделать errorElement в li. Кто-нибудь знает как это сделать? Благодаря!

ответ

7

Я ищу the code in the plugin, а опция errorElement просто ищет элемент в качестве параметра. Поскольку функция обратного вызова для errorElement отсутствует, я не вижу прямого способа добиться того, что вы просите, не изменяя сам плагин.

Возможно, вы могли бы что-то сделать с обратным вызовом errorPlacement.

Скажем, просто оставьте его как label, а затем оберните его каким-либо другим контейнером? Или используйте errorElement, чтобы разместить их внутри <span>, используя errorPlacement до wrap динамически в любом контейнере. См. jQuery .wrap().

errorElement: 'span', 
    errorPlacement: function (error, element) { 
     var type = $(element).attr("type"); 
     if (type === "radio") { 
      // custom placement 
      error.insertAfter(element).wrap('<li/>'); 
     } else if (type === "checkbox") { 
      // custom placement 
      error.insertAfter(element).wrap('<li/>'); 
     } else { 
      error.insertAfter(element).wrap('<div/>'); 
     } 
    }, 

DEMO: http://jsfiddle.net/uLH4f/

+0

Wow. Отличный ответ! Спасибо :) – srchulo

+0

Добро пожаловать. – Sparky

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