0

次のTinyMCEエディタがあります。ユーザーが空白または改行を入力した場合、JQueryの検証は機能しません

ユーザーが空白または改行を入力した場合、検証は機能しません。

このタイプのシナリオでもクライアント側の検証をどのように起動できますか?

現在、私のフォームは次のようになります。

を次のように上記レンダリングされ

<form id="tinymceform"> 
    <div class="tinymceholder"> 
    @Html.TextArea("Comments", null, new { id = "mytextarea" }) 
    @Html.ValidationMessage("Comments") 
    </div> 

    <button type="submit">Submit</button> 
</form> 

のViewModel:

[Required] 
public string Comments { get; set; } 

見ます

スクリプト:

<script type="text/javascript"> 
    tinymce.init({ 
     selector: '#mytextarea' 
    }); 

    if ($(".tinymceholder").length === 0) { 
     return; 
    }else { 

     $.validator.setDefaults({ 
      ignore: [] 
     }); 
    } 
</script> 

私は次のことを試してみましたが、動作するようには思えませんか。?

$('#tinymceform').submit(function(e){ 
    e.preventDefault(); 

    var content = tinymce.activeEditor.getContent({ format: 'text' }); 

    if ($.trim(content) === '') { 
     $('#tinymceform').validate().showErrors({ 
      "Comments": "This field cannot be empty" 
     });); 
    } 

    if (!$('#tinymceform').valid()) return false; 

    this.submit(); 

}); 
+0

空白を削除するプラグインには、ノーマライザーが組み込まれています。しかし、私はあなたのフレームワーク内でこれをどのように実装するのか分かりません。 https://jqueryvalidation.org/normalizer/ – Sparky

+0

あなたの試行したソリューションは、jQuery Validateプラグインがすでにあなたのためにやっていることをしようとしているので動作できません...検証を行うためにデフォルトのsubmitをブロックしています。フレームワークとそのプラグインの枠内で作業する必要があります。 – Sparky

+0

私はあなたの最善の策は、 '必要なもの'を置き換える独自のカスタムメソッドを書くことだと思う。 – Sparky

答えて

-1

まず、jQueryバリデータを削除します。

第二:これでAcompanyあなたの[必須]注釈:

[RegularExpression(@"^\S*$", ErrorMessage = "No white space allowed")] 

あなたが行くために良いことがあります。

関連する問題