0

私は周りを見回しましたが、この問題を抱えている人は他にいません。私は 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"," ");
           }
}

また、これをドキュメントに追加して、以前にチェックされたボックスの変更機能をトリガーできるようにしました。

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

この問題が検証エンジンのバグなのか、それとも何か...

4

1 に答える 1

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"," ");
   }
}
于 2013-09-17T18:07:47.357 に答える