問題タブ [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 に答える
2363 参照

c# - 日付用の控えめなカスタム日付バリデーター

多分それは私の心の働き方なのかもしれませんが、目立たないカスタムバリデーターをどのように行うべきかを理解するのに非常に苦労しています。C# の部分は十分に簡単ですが、jqueryui アダプターは私が迷っているところです。

私は、日付が過去の特定の時間である必要があるバリデーターを作成しようとしています。これを年齢検証に使用して、誰かが 18 年前の日付を入力したことを確認します。

私は最終的に、それをリモートバリデーターにすることにしました。そのため、検証ではクライアント側とサーバー側の両方で同じコードが使用されます。それでも、私はこれを機能させるために jquery に興味があります。

Data Annotation Extensions に日付関数があればいいのに。

0 投票する
7 に答える
8539 参照

asp.net-mvc-3 - MVC3 で控えめな JavaScript を拡張して div クライアント側にスタイルを追加するための最良の方法

Twitter の Bootstrap テンプレートを利用して html5/Razor/MVC3 を使用しています。文書化されているように滑らかに見えるフォーム検証が必要です( http://twitter.github.com/bootstrap/#forms )。したがって、アカウント登録用の標準的なボイラープレート MVC3 がどのようになっているのかを見ると、マークアップは次のようになります。

私がやりたいことは、最初の入力でハードコーディングしたように、コンテナー div に「エラー」クラスを挿入させることです。(したがって、ページに入ると、div は「clearfix」のクラスを持ちますが、その入力ブロックが検証に失敗した場合、「clearfix エラー」としてタグ付けされます)。何らかの ID を含めるように div ブロックを更新し、おそらく ValidationMessage に新しい data- 属性を追加する必要があると思います。ValidationMessageFor ヘルパーの拡張に問題はありません。そこにあるライブラリを拡張するためのアプローチがどうあるべきか、100%確信が持てません。これにアプローチする方法について何か提案はありますか?

ティア。

更新

このアプローチは合理的だと思います:

検証メッセージをデータ コンテナー名で装飾することにより、コンテナー div をターゲットにすることができます。あとは、検証メッセージをインターセプトする方法を理解する必要があります。

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

asp.net-mvc - MVC3 検証 - グループから 1 つが必要

次のビューモデルがあるとします。

利用可能なプロパティの少なくとも 1 つが true であることを検証するカスタム属性を作成したいと考えています。プロパティに属性をアタッチし、次のようにグループ名を割り当てることができると思います。

フォームの値が変更されるため、フォームを送信する前にクライアント側で検証したいので、可能であればクラスレベルの属性を避けたいと思います。

これには、カスタム属性のパラメーターとして渡された同一のグループ名値を持つすべてのプロパティを見つけるために、サーバー側とクライアント側の両方の検証が必要になります。これは可能ですか?どんなガイダンスも大歓迎です。

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

asp.net-mvc-3 - MVC3 - JQuery UI オートコンプリート ドロップダウンで目立たない JavaScript を起動する

MVC3 アプリで目立たない検証を使用しています。[必須] バリデータを含むドロップダウン リストがあります。これは私のモデルです(簡略化):

そして、これは私のビューです(簡略化):

ドロップダウン リストを JQuery UI コンボ ボックス jqueryui.com/demos/autocomplete/#comboboxにするまで、これはすべてうまく機能しています(最後の引数を参照)。

送信ボタンを押しても何も選択されていない場合、検証は正常に起動します。ただし、機能しない厄介なことが1つあります。エラーが発生したときに、ドロップダウンで何かを選択してタブアウトしてエラーを修正しても、エラーは消えません。これは、通常のセレクト ボックスの場合に発生しました。

おそらく、<select>が非表示になり、by JQuery に置き換えられたことが関係していると思われます<input>が、正しい js を起動してエラー メッセージを削除する方法がわかりません。

どんな助けでもありがたく受け取られます!

前もって感謝します

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

asp.net-mvc - この場合、ASP.NET MVC 3 がクライアント側の検証を有効にしないのはなぜですか?

Brad Wilson のレシピに従って、目立たないクライアント側の検証を ASP.NET MVC 3 プロジェクトに統合しようとしています。ただし、レンダリングされたビューでは有効になりません。たとえば、私の要素 (エディタ フィールドなど) は規定どおり<input>に属性を受け取りません。data-val

目立たないクライアント側の検証を有効にするために、次のことを行いました。

Web.config:

Options.cs:

_Layout.cshtml:

Options.cshtml:

この HTML は、エディター フィールド用に生成されます。

ご覧のとおり、data-val属性はありません:(

0 投票する
3 に答える
897 参照

asp.net-mvc - この ASP.NET MVC 3 アプリでは、目立たないクライアント側の検証を取得するために欠けているものは何ですか?

ASP.NET MVC 3 アプリで目立たないフィールドのクライアント側検証を実装する方法を理解するのに助けが必要です。MVC は関連する HTML を生成するため、目立たないクライアント側の検証が基本的に有効になっていることがわかります。

この場合に達成したいのは、入力時にBugsエディターへの入力 (つまり、対応する<input>要素) を検証することです。テスト目的で、プロパティの最大長を 2 に設定しました。テストすると、それがわかります。検証は現在行われていないため、少なくとも何かが欠けています。したがって、この質問の成功基準は、Bugsフォーム フィールドのクライアント側の検証が機能していることです。

生成された HTML で考えられる問題が 1 つあります。プロパティVerboseはモデルのようにマークされていませんが、対応する属性は引き続きたとえば属性を取得しますが、 forは取得しません。目立たない検証を有効にするために、検証ルールを持つフィールドが取得する必要があるように、逆にするべきではありませんか?Required<input>dataval=true<input>Bugsdataval=true

ケースの理解に関連するコードは次のとおりです。さらに情報が必要な場合はお知らせください。

Options.cs:

Options.cshtml:

2 つのエディター ( forBugsVerbose) は次のように表示されます。

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

asp.net-mvc-3 - 目立たない検証が機能しない理由を特定する方法

目立たない検証が機能しない理由を追跡する方法はありますか?

カスタムバリデータをすべて無効にし、MVC バリデータのみを使用していますが、送信をクリックすると、検証のためにサーバーにポストバックされます。

それは私を夢中にさせています。私が考えることができる唯一のことは、 以外の検証属性を持たない隠し入力があるということです[HiddenInput(DisplayValue = false)]

どのフィールドがフォームの送信を引き起こしているかを判断するためにブレークポイントを設定できる特定の JavaScript 関数はありますか?

編集:

IE8 だけがサーバー側の検証を引き起こしていることに気付きました。IE9、FF、および Chrome はすべて問題ありません。

編集2:

わかりました、それはキャッシュの問題か何かだったに違いありません。ある時点で再び機能し始め、すべてを復元した後でも機能しています。

学んだ教訓。間抜けな問題が発生した場合は、常にキャッシュをクリアしてください。

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

asp.net-mvc-3 - [AllowHtml]するが、スクリプトを拒否する方法は?

asp.net mvcでhtmlを投稿するには[AllowHtml]、プロパティとValidate(input)コントローラーで設定する必要がありますが、投稿htmlでスクリプトの投稿を拒否するにはどうすればよいですか?

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

jquery - テキストボックスに目立たない検証エラーを手動で設定する

リモート検証と同様のことを行っていますが、jquery を介して手動で呼び出しを行い、セットアップする必要があるものはすべてセットアップしています。

今私の問題は、特定のテキストボックスが有効ではないことをバリデーターに伝えたい場合です(そして、ページが送信されないようにしたり、テキストボックスを強調表示したりするなど)。コードからこれを行うにはどうすればよいですか?

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

asp.net-mvc-3 - 無限ループを起こさずに他のフィールドを検証する

検証済みのフィールドが空でない場合にのみ別のフィールドが必要であることを検証する必要がある控えめなバリデーターを作成している状況があります (およびその逆)。問題は、他のフィールドが再検証されないエッジケースがいくつかあることです。無限ループを引き起こさずに強制的に再検証したいと考えています。

私の検証方法は次のようになります。

params は私のもう 1 つのフィールドです (どちらもテキスト ボックスです)。両方が空の場合は合格、両方が値を持っている場合は合格です。値が 1 つだけの場合にのみ失敗します。

これは正常に機能しますが、あるフィールドが空で別のフィールドに値がある場合、値のあるフィールドから値を削除すると、空のフィールドは再検証されません (値が変更されていないため)。

私はこれをやってみました:

しかし、これは、通過するたびにもう一方を呼び出すため、無限ループを引き起こします。

元のフィールド自体を呼び出さずに、他のフィールドを検証するにはどうすればよいですか?