2010-12-25 21 views
0

ユーザーがその行のチェックボックスをクリックしてユーザーがチェックボックスをオフにすると、検証ルールをテキストボックスに動的に追加する必要があります。これは私がやったことです、それはうまくいきますが、それが正しい方法であるかどうかは分かりません。ここ は私のhtmlコードです:妥当性検査ルールを動的に追加/削除する

<tbody> 
<c:forEach items="${list}" var="item"> 
    <tr> 
     <td align="center"> 
     <input type="checkbox" name="selectItems" value="<c:out value="${item.numberPlate}"/>" /> 
     </td> 
     <td align="left"><c:out value="${item.numberPlate}"/></td> 
     <td align="left"><c:out value="${item.driver.fullName}"/></td> 
     <td align="left"><input type="text" name="mileage_<c:out value="${item.numberPlate}"/>" value="" /></td> 
    </tr> 
    </c:forEach>      
</tbody> 

と私のjqueryの:

は-----

は、今私は追加/ removeClassを使用していますし、また---- EDITEDうまく動作しますが、これを行うためのより速い方法はありませんか?つまり、非常に多くの 'add/removeClass'命令を書くことを避けるための1つの方法ですか?最後にaddClassを使って "min:100"または "minlength:6"をどのように指定することができますか?

$("input[name=selectItems]").change(function() { 
    if (this.checked) 
     { 
      $(this).closest("tr").find("input[name^=mileage]").addClass('required'); 
      $(this).closest("tr").find("input[name^=mileage]").addClass('number'); 
     } 
    else 
     { 
      $(this).closest("tr").find("input[name^=mileage]").removeClass("required") 
      $(this).closest("tr").find("input[name^=mileage]").removeClass('number'); 

     } 
});  

alt text

任意の提案は大歓迎です...私はほとんど忘れてしまった、メリークリスマス!

+0

クライアント側(ジャバスクリプト)の検証を簡単にハッキングされていることに注意してください。サーバー側の検証を実装してから、jQの内容を試してみてください。 –

答えて

2

ほんの少しの改善点は、attrを使ってクラス値を割り当てる代わりにaddClassとremoveClassを使用して、検証を扱っていない入力フィールドに既に割り当てられているクラスを削除しないことです(つまり、 )

編集::()あなたのコメントあたりとして、以下のコードを更新しました

$("input[name=selectItems]").change(function() { 
     var me = $(this); 
     var scoper = me.parent().parent(); 
     var otherInputs = $("input[name^=mileage]", scoper); 
    if (this.checked) 
     { 
      otherInputs.addClass('required number'); 
      otherInputs.attr('maxlength', '6'); 
     } 
    else 
     { 
      otherInputs.removeClass("required number"); 
     } 
}); 
+0

私はあなたが私に言ったことを作った、そして今私はadd/removeClassを使用しているが、私はまだいくつかの疑問を持っている、下のコメントを確認してください----編集---私の質問で – eddy

+0

必要に応じて私の答えを変更。今すぐチェックしてください... – Chandu

+0

機能がはるかに良くなっていますが、addClassを使って "min:100"または "minlength:6"をどうすればいいのか教えてください。これは最後の質問ですが、約束します:$ – eddy

関連する問題