validationEngine:勾选复选框后的condRequired

时间:2013-09-17 17:52:48

标签: jquery forms validation jquery-validation-engine

我环顾四周,无法看到其他人遇到此问题。我正在使用validationEngine并遇到一个问题,当勾选一个特定的复选框时,需要输入2个输入。即使没有勾选,他们仍然说他们是必需的。

    <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"," ");
           }
}

我还将此添加到doc准备好触发先前检查过的框的更改功能。

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

我不确定这个问题是否是验证引擎中的错误或者是什么......

1 个答案:

答案 0 :(得分:2)

如果已将jquery验证类添加到元素,则始终验证它,如果您不需要,则需要删除该类。为此,你可以使用复选框中的javascript函数

  <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"," ");
   }
}