2017-01-06 3 views
1

ユーザーがまだ入力する必要があるカスタムフォームの検証とハイライト表示を行っています。フィールドセットの周りの枠線を変更する.addClassメソッドを使用してフィールドセットにクラスを追加します赤に。ユーザーがsubmitボタンをクリックすると、検証CSSクラスを最初にクリアしてフォームを再チェックして、ユーザーに適切な入力があるかどうかを確認する関数を実行します。境界ボックスは、removeClass()が呼び出されたときに元の色に戻っていません。それは赤色のままです。jQuery .removeClass()が正しく動作しない

//Add 
$('#jdeABFieldSet').addClass("validatorBox"); 
//Remove 
$(".validatorBox").removeClass("validatorBox"); 

私も

$("#jdeABFieldSet").removeAttr('class'); 
$("#jdeABFieldSet").attr("class", ""); 

CSS以下

.validatorBox{ 
    border-color: red; 
} 

完全なコードを試してみました。

//This is where the class is added to change the border color to red. 
switch($('#tbJDEName').val().length === 0 || 
       $('#tbMailingAddress').val().length === 0 || 
       $('#tbCity').val().length === 0 || 
       $('#tbState').val().length === 0 || 
       $('#tbZip').val().length === 0 || 
       $('#tbCounty').val().length === 0 || 
       $('#ddlLocationCode').val() === "default" || 
       $('#ddlSearchType').val() === "default") { 
        case $('#tbJDEName').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#tbJDEName').addClass("validatorBox"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#tbMailingAddress').val().length === 0: 
         $('#jdeABFieldSet legend').addClass("validatorText"); 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $("label[for='tbMailingAddress']").addClass("validatorText"); 
         //$('#tbMailingAddress').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#tbCity').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#tbCity').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#tbState').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#tbState').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#tbZip').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#tbZip').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#tbCounty').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#tbCounty').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#ddlLocationCode').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#ddlLocationCode').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
        case $('#ddlSearchType').val().length === 0: 
         $('#jdeABFieldSet').addClass("validatorBox"); 
         $('#ddlSearchType').addClass("validatorText"); 
         alert("JDE Address Book Request section must be filled out."); 
         break; 
       } 

//This function is the first thing called when the user clicks submit to clear the classes 
function clearValidationClass() { 
      $(".validatorBox").removeClass("validatorBox"); 
      $(".validatorText").removeClass("validatorText"); 
     } 
+2

孤立していても、これらのコード行は機能しません。 –

+2

何が起きているのか(または起きていないのか)を理解するためにコードをもっと見る必要があります。あなたの質問に詳細を記入してください。 – Serlite

+0

@RoryMcCrossan編集を参照 – user2756091

答えて

-2

私の推測では、クラス自体をクラスから削除することはできません。

$("#jdeABFieldSet").removeClass("validatorBox"); 

・ホープ、このヘルプ: このような何かを試してみてください。

+0

これは間違っています。次回はそれをテストする必要があります。 [look](https://jsfiddle.net/9g50n0ja/)を取る – Loaf

関連する問題