問題タブ [unobtrusive-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6916 参照

asp.net-mvc-3 - クライアント側でカスタムValidationAttributeを「data-val-xx」属性としてレンダリングするにはどうすればよいですか?

次のようなViewModelを指定します。

そして、このようなビュー(ここではRazor構文):

次のマークアップを取得しています。

ただし、カスタムバリデーターの「data-」属性も含めたいと思います。

私はこのようなものが欲しい:

ASP.NET MVC 3.0でこれを実現するにはどうすればよいですか?

たとえば、カスタムバリデーターに特別な属性を設定する必要がありますか?またはどこかに登録しますか?

0 投票する
4 に答える
2875 参照

asp.net-mvc - MVC 3 目立たない JavaScript を無効にできない

mvc 3 プロジェクト (RC1 を使用) に新しい目立たない JavaScript を実装しています。必要な 3 つのスクリプトを「マスター」レイアウト ページに追加しました。すべてがうまくいっています。

ただし、通常のjquery検証を使用してテキストボックスを検証したいビューがあります。正確には、エントリが存在し、それが数値であることを確認したいと思います。

したがって、ページでは、私のjsは次のようになります...

しかし、これは機能していませんでした。そのため、私のマスター レイアウト ページで、jquery.validate.unobtrusive.min.js ファイルへの参照をコメント アウトしました。

だから私は、目立たない小片と関係があるに違いないと思ったので、それをオフにすれば(私はあなたができると読んでいた)すべてがうまくいくでしょう.

そのため、ビューページに次の行を追加しました

しかし、喜びはありません。それを機能させる唯一の方法は、目立たないjsファイルへの参照を削除することです。

さすがにこれはあり得ない。私は停止している必要がありますよね?

ありがとう

0 投票する
13 に答える
78806 参照

asp.net-mvc-3 - jquery.validate.unobtrusiveが動的に挿入された要素で機能しない

私はで作業しています。ASP.Net MVC3クライアント検証を使用する簡単な方法は、を有効にすることjquery.validate.unobtrusiveです。サーバーから直接のものについては、すべてが正常に機能します。

しかし、javascriptを使用していくつかの新しい「入力」を挿入しようとすると$.validator.unobtrusive.parse()、検証を再バインドするために呼び出す必要があることがわかりました。しかし、それでも、これらの動的に注入されたフィールドはすべて機能していません。

さらに悪いことに、を使用して手動でバインドしようとしましjquery.validateたが、どちらも機能していません。何かご意見は?

0 投票する
1 に答える
2079 参照

unobtrusive-javascript - カスタムフォームポストイベントの前にASP.NET MVC3クライアント側のフォーム検証を実行するにはどうすればよいですか

asp.net mvc 3 で目立たないクライアント側の検証を使用してフォーム フィールドを検証するフォームのビューがあります。

ajax経由でフォームを送信するためのカスタムjqueryスクリプトもあります

私の質問は、イベント ハンドラーの順序を変更して、asp.net mvc 3 クライアント側の検証が ajax フォーム ポスト ハンドラーの前に呼び出されるようにするにはどうすればよいかということです。検証エラー。

私が抱えている問題は、イベント ハンドラーの前に asp.net mvc 3 控えめな JavaScript 検証イベント ハンドラーがトリガーされないことです。

スクリプトの最後にある、それ以上のイベントの伝達を防ぐコードを無効にすることで、ハンドラーの実行後に asp.net mvc 3 クライアント側の検証が実際にトリガーされていることがわかります。

0 投票する
2 に答える
5823 参照

asp.net-mvc - ASP.NETMVC3カスタムの目立たないクライアント側の検証でAjaxフォームの投稿が妨げられない

送信する前に、Javascriptを介してページに入力されたパスワードをハッシュする必要がある「パスワードの変更」ページがあります。さらに複雑なことに、ページはjQuery load()呼び出しを介してロードされ、jQuery.Form ajaxForm()呼び出しによって送信されます。すべてがMVC2で機能していましたが、MVC3で問題が発生しています。

つまり、[パスワードの変更]リンクのあるページがあり、クリックするとパスワードの変更ページがjQueryモーダルポップアップに読み込まれ、パスワードの変更ページのフォームがjQuery.Formライブラリを介して送信されます(基本的には、 $ .ajax呼び出し)、その結果をモーダル同じモーダルポップアップに返します。

基本的に、OldPasswordとNewPasswordの2つのプロパティを持つモデルがあります。これらのビューによって生成された2つの非表示フィールドがあります。これらは、他の2つのフィールド、PrehashOldPasswordとPrehashNewPasswordのハッシュ値を保持し、キーアップイベントを介して更新されます(これは、すべてのキーアップでSHA256ハッシュ全体を実行することを意味します...非効率的ですが、テストのために仕事をしました)。ここで重要なのは、正規表現の検証と必須フィールドの検証は、クライアント側にのみ存在するこれらのPrehashフィールドで実行する必要があるということです(明らかに、これらのフィールドをサーバーに送信したくないので)。

したがって、これら2つを手動で作成し、data-val- *属性を要素に追加します。つまり、MVCヘルパーなどによって生成されません。これが何かが足りないところだと思います。すべてのフィールドが空の状態でフォームを送信すると、すべてのエラーがポップアップ表示されますが、フォームはすぐに送信され、とにかく送信されます。

==

だから私が試したこと:

はい、目立たないライブラリparse()メソッドは、AJAXでロードされたフォームの内容を解析するためにすでに呼び出されており、エラーがフィールドblur()として表示されるので、すべてのデータ検証を正しく取得しているように見えます。送信(ajaxリクエストが完了してポップアップのコンテンツを置き換える前)。

考えられる注意:この目立たないライブラリの解析メソッドの呼び出しは、AJAXがパスワード変更ページをポップアップに正常にロードした後に発生します... AJAXフォーム送信バインディングがdocument.readyに配置され、ロードされたコンテンツ、ergo、AJAXフォーム送信バインディングの準備ができています解析メソッドが送信イベントにバインドする可能性があるという検証呼び出しの前にバインドしている可能性があります。

ただし、(1)他の場所でも同じようなことを問題なく行っています。唯一の違いは、手動で作成している要素にこれらのdata-val-*属性を手動で配置していることです。(2)OldPasswordフィールドまたはNewPasswordフィールドに何らかのエラーが発生した場合、つまり、値をロードしないことによる必須フィールド検証エラーが発生した場合、エラーが表示され、フォームがjQuery.Formを介して送信するのを正常に停止します。方法。

だから私はここで何かが間違っている必要があると思います:

エラーが表示されるので、jquery.validateがルールを正しく取得していることを知っています。私がこのようなことをし、フォームのAJAX送信に事前送信コールバックを追加しない限り、これらの手動で生成された要素でエラーが発生したときにフォームの送信を停止することはありません。

これは機能しますが、ちょっと醜いので、検証が2回呼び出される原因になると思います...大したことではありませんが、理想的とは言えません。では、これらをバインドするために、目立たないライブラリで行う必要のある他の呼び出しはありますか?

0 投票する
5 に答える
26931 参照

jquery - jQueryの控えめな検証を使用するときに「submitHandler」関数を追加する方法は?

ASP.NET MVC 3 の新しい目立たない検証機能を使用してフォームを検証しています。

そのため、フォームの検証を開始するために jQuery 検証をセットアップするために記述したコードはありません。jQuery.validate.unobtrusive.js ライブラリをロードすることですべて完了します。

残念ながら、「本当によろしいですか?」という質問をする必要があります。フォームが有効で送信前のメッセージ ボックス。jQuery validate を使用すると、次のように初期化するときにオプション handleSubmit を追加できます。

ただし、目立たないライブラリを使用する場合は初期化する必要はありません。

その場合、送信ハンドラーを追加できる場所/方法はありますか?

どうも

0 投票する
1 に答える
3289 参照

asp.net-mvc - 元の値を許可する ASP.NET MVC 3 リモート検証

User モデルの email プロパティに Remote 属性があります。新しいユーザーを作成すると、作成が機能し、電子メールが既に使用されていることがユーザーに通知されます。現在、編集フォームに問題があります (ユーザーが値を更新したい場合)。使用中の電子メールがユーザーに登録されているものである場合、そのメッセージを表示したくありません。Remote 属性を微調整して動作させるにはどうすればよいですか?

0 投票する
2 に答える
7006 参照

validation - リモート検証の検証トリガーを指定する MVC 3

次のように、MVC 3控えめな検証を使用してリモート検証を実装しました

モデル

コントローラー

景色

それだけです。すべて機能しますが、ValidationAction はキーを押すたびに起動されます。これは理想的ではありません。要素がフォーカスを失ったときに起動したいのですが、これを行う方法がわかりません。

アップデート

実際、デフォルトでは、要素が最初にフォーカスを失ったときに検証が onBlur を起動することに注意しましたが、それを修正しようとすると、検証が onKeyUp を起動します。これは意図された機能であり、それについて考えるとおそらく非常に役立つと思います。ただし、この動作を変更できるかどうかを知っておくと便利です

0 投票する
5 に答える
9642 参照

jquery - ASP.Net MVC 3 控えめなクライアント検証がドロップダウン リストで機能しない

私は単純なドロップダウン リストを持っています。リストの最初の項目には空の値があります。リストで何も選択しないと、クライアントの検証で無視されます。注釈属性を使用して、モデルで必要に応じてそのフィールドを設定しました。

何か案は?私は何かを逃していますか?

0 投票する
14 に答える
76699 参照

asp.net-mvc - @Htmlヘルパーによって生成されている間にMVCで「data-val-number」メッセージ検証を変更する方法

次のモデルを想定します。

とビュー:

このhtmlを続行します:

が. data-val-number_ PercentChange_ Integer私はそれを変更するためにそのような属性を探していましたが、range関連するものは何でも機能しません。
unobtrusive の js ファイル自体を編集するか、クライアント側でオーバーライドする可能性があることはわかっています。data-val-numberサーバー側の他のエラー メッセージと同じように のエラー メッセージを変更したい。