Проверка встроенной формы jQuery - скрытое поле - PullRequest
2 голосов
/ 20 февраля 2012

Я использую следующий валидатор для моего проекта: http://www.position -absolute.com / articles / jquery-form-validator-потому что-form-validation-is-a-mess / .

Я столкнулся с некоторыми трудностями, когда использовал его с Chosen (http://harvesthq.github.com/chosen/), который заменяет тег «select» по умолчанию на некоторые элементы div и делает тег select скрытым.

В основном это оченьта же проблема, как описано здесь: https://github.com/harvesthq/chosen/issues/473, но на самом деле она должна рассматриваться не как выбранная проблема, а скорее как валидатор.

Итак, вопрос в том - есть ли простое решение использовать этот валидатор для icludeскрытые поля?Я попытался удалить все части источников сценариев, которые говорят, что игнорируют скрытые поля, но это не решает проблему.всякий раз, когда я отправляю форму, она проверяет все поля, кроме скрытых.

Заранее благодарен за любую помощь

Ответы [ 3 ]

2 голосов
/ 20 февраля 2012

Приведенное выше решение не является идеальным решением.Если вы вернетесь к проблеме GitHub, на которую вы ссылались выше, вы увидите лучшее решение, которое не включает «взлом» любого из используемых вами плагинов.

2 голосов
/ 21 февраля 2012

Вот решение, которое я, наконец, выбрал, если кому-то из них это понадобится:

function validateChosen(targetId){
if ($('#'+targetId).val()=='') {
    valid=false;
    $('#'+targetId+'_chzn').validationEngine('showPrompt', '* Field required','','topRight',true);
  } else {
    $("."+targetId+"_chznformError").fadeOut("normal",function(){
      $(this).remove();
    });
  }
}
2 голосов
/ 20 февраля 2012

У меня была похожая проблема при использовании скрипта jQuery 'select prettifier'. Вместо того, чтобы скрывать исходное выделение, которое, как вы видели, означает, что функция проверки jQuery игнорирует его, я установил position на absolute и установил левую позицию на странице:

.hidden-field { 
    position: absolute;
    left: -9999px;
}

Хотя может быть более элегантное решение для этого.

...