2013-09-17 3 views
0

Я осмотрелся и не смог увидеть, что кто-то еще имеет эту проблему. Я использую validationEngine и сталкиваюсь с проблемой, когда требуется 2 входа, когда галочка отмечена. Даже когда это не отмечено, они все еще говорят, что они требуются.validationEngine: condRequired when tickbox

<td> 
     <input type="checkbox" value="true" name="Availability_MondayIsAvailable" id="Availability_MondayIsAvailable" checked="checked">&nbsp;&nbsp;Monday 
    </td> 
    <td> 
     <input type="text" value="0:00 AM" size="5" name="Availability_MondayStartTime" id="Availability_MondayStartTime" class="validate[condRequired[Availability_MondayIsAvailable],custom[timeForm]]"> 


    </td> 
    <td><input type="text" value="7:00 PM" size="5" name="Availability_MondayEndTime" id="Availability_MondayEndTime" class="validate[condRequired[Availability_MondayIsAvailable]]"> 

    </td> 

Ящик отмечен галочкой. Я отключаю его, а входные сигналы предупреждают по мере необходимости.

ОБНОВЛЕНИЕ Я взял то, что @Shafeeq поставил и создал для обработки всех 7 дней.

function availableDay(day) { 
     var yourselector = '#Availability_' + day + 'IsAvailable'; 
     var yourselectorStart = '#Availability_' + day + 'StartTime'; 
     var yourselectorEnd = '#Availability_' + day + 'EndTime'; 
     var onClass = 'validate[condRequired[Availability_' + day + 'IsAvailable],custom[timeForm]]'; 
      if ($(yourselector).is(':checked')) { 
       $(yourselectorStart).attr("class", onClass); 
       $(yourselectorEnd).attr("class", onClass); 
      } 
      else { 
       $(yourselectorStart).attr("class"," "); 
       $(yourselectorEnd).attr("class"," "); 
      } 
} 

Я также добавил это к документу, готовому для запуска функции изменения для ящиков, которые ранее были проверены.

$("input[type='checkbox']").trigger("change"); 

Я не уверен, что если эта проблема была ошибка в двигателе проверки или что ...

ответ

2

Если вы добавили класс проверки JQuery к элементу, всегда подтверждено, если вы этого не сделаете вам нужно удалить класс. Для этого вы можете использовать функцию яваскрипта в флажке

<input type="checkbox" value="true" onchange="set_validation()" name="Availability_MondayIsAvailable" id="Availability_MondayIsAvailable" checked="checked">&nbsp;&nbsp;Monday 

Добавить эту функцию в JavaScript

function set_validation() { 
    if ($('#Availability_MondayIsAvailable').is(':checked')) { 
     $("#Availability_MondayStartTime").attr("class", "validate[condRequired[Availability_MondayIsAvailable],custom[timeForm]]"); 
     $("#Availability_MondayEndTime").attr("class","validate[condRequired[Availability_MondayIsAvailable]]"); 
    } 
    else { 
     $("#Availability_MondayStartTime").attr("class"," "); 
     $("#Availability_MondayEndTime").attr("class"," "); 
    } 
} 
+0

Ну, condRequired должен только сделать это поле необходимо, если имена полем это имеет значение, но, возможно, это ошибка. Благодаря! Я попробую это так. – Shevy

+0

Любая идея, как заставить эту работу использовать тег 'data-validation-engine' вместо класса? –

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