2011-02-02 5 views
1

Я использую структуру symfony для разработки веб-сайта. Моя форма выглядит следующим образом jquery validate complex date group with brackets in name

<li class="fields"> 
    <label>Date de début* :</label> 
    div class="field"> 
     <select id="agenda_date_debut_day" name="agenda[date_debut][day]" class="required w_auto required"> 
      <option selected="selected" value=""></option> 
      <option value="1">1</option> 
      ... 
     </select> 
     <select id="agenda_date_debut_month" name="agenda[date_debut][month]" class="required w_auto required"> 
      <option selected="selected" value=""></option> 
      <option value="1">1</option> 
      ... 
     </select> 
     <select id="agenda_date_debut_year" name="agenda[date_debut][year]" class="required w_auto required"> 
      <option selected="selected" value=""></option> 
      <option value="1">1</option> 
      ... 
     </select> 
    </div> 
</li> 

я пытался что-то вроде этого, но это не сработало:

var validator = $(".validate_form").validate({ 
    groups: { 
     /*dateDebut: '"agenda[date_debut][day]" "agenda[date_debut][month]" "agenda[date_debut][year]"'*/ 
     dateDebut: "agenda[date_debut][day] agenda[date_debut][month] agenda[date_debut][year]" 
}, 
errorPlacement: function(label, element) { 
    if (/^dateDebut/.test(element[0].name)) { 
    label.insertAfter("#agenda_date_debut_year"); 
    } 
    ... 
} 
... 

}

Я прочитал много сообщений о том, как использовать имя attribut, но я не выяснить, как иметь дело с моим. Как я уже сказал, я использую symfony, поэтому я не могу изменить имя атрибута, чтобы удалить [].

Возможно, возможно изменить плагин для использования id вместо имени, но я не понимаю, как это сделать.

Кто-то может мне помочь, пожалуйста

Thks

+0

Я также struk с той же проблемой, пожалуйста, дайте мне знать, когда вы найдете ответ –

ответ

-1

Вы должны избежать скобки с обратной косой черты для теста с регулярным выражением для работы: "agenda\[date_debut\]\[day\] agenda\[date_debut\]\[month\] agenda\[date_debut\]\[year\]"

+0

Escaping brackets не работает, все еще ищет решение. – d3l3t3m3

0

Это на самом деле работает отлично с кронштейнами в имени.

Например, у меня есть:

$(document).ready(function(){ 
    $("#coppa_users_form form").validate({ 
    rules: { 
     "coppa_user[user_attributes][username]": { 
     required: true, 
     minlength: 3 
     } 
    }, 
    messages: { 
     "coppa_user[user_attributes][username]": "<p class='errormsg'>Please enter at least three characters</p>" 
    } 
    }); 
}); 

И это работает отлично. Возможно, проверьте, есть ли какие-либо конфликты в JS выше, где это вызвано?