2017-10-19 17 views
0

私のアプリケーションでjqueryの検証& jquery.validate.unobtrusiveを使用しています。検証エラーメッセージがクリアされない

私のページには、約4-5個のコントロールがあります。これらのうちのいくつかは隠されています。私のページには3つのボタンがあります。最初のボタンをクリックすると、非表示のコントロール(ラジオボタンとドロップダウン)が表示されます。これらはすべて必須フィールドです。ユーザーが送信ボタンである他のボタンをクリックすると、必要なフィールドがすべて正常に表示されます。 3番目のボタンは、独自のコントロールを持つ別のビューを切り替えるために使用されます。

私の問題は、ユーザーが2番目のボタンを使用してフォームを送信し、フィールドに値が入力されていない場合は必須のフィールドメッセージが表示されることです。この時点で、3番目のボタンをクリックして別のビューに切り替えた後、私のビューに戻すと、エラーメッセージが表示されます。私はこれらのエラーメッセージをクリアすることができません。私が持っているラジオボタンの下に 参照してください:

<div class="col-sm-10"> 
    <label class="radio-inline"> 
     <input type="radio" value="myValue1" asp-for="Name" class="required" 
      data-bind="checked: name" />Name value 1 
    </label> 
<label class="radio-inline"> 
    <input type="radio" value="myValue2" asp-for="Name" data-bind="checked: 
    name" />Name value 2 
</label> 
<span asp-validation-for="Name" class="danger"></span> 

私はノックアウトを使用して、私は私がクリアし、フォームをリセットするには、以下のコードを使用しようとしたがトグル3つ目のボタンのボタンクリックにしていますそれは動作しません。最後に私が生成され、次のスパンを見ることができます

 $("form").removeData("validator"); 
     $("form").removeData("unobtrusiveValidation"); 
     $.validator.unobtrusive.parse($("form")); 

:私はこれらのコントロールが最初に隠されているとの検証を強制するために、次のコードを使用していますフォームを送信しながら、

 var validator = $("form").validate(); 
     validator.resetForm(); 

もう一つはありますHTML:

<span class="help-block-msg field-validation-valid" data-valmsg-for="Name" 
data-valmsg-replace="true"> 
<span id="Name-error" class="">This field is required.</span> 
</span> 

答えて

0

あなたがエラーをクリアするには、次のコードを使用することができます。

//get the form inside we are working - change selector to your form as needed 
var $form = $("form"); 

// get validator object 
var $validator = $form.validate(); 

// get errors that were created using jQuery.validate.unobtrusive 
var $errors = $form.find(".field-validation-error span"); 

// trick unobtrusive to think the elements were succesfully validated 
// this removes the validation messages 
$errors.each(function(){ $validator.settings.success($(this)); }) 

// clear errors from validation 
$validator.resetForm(); 

How to clear jquery validate errors

関連する問題