私は asp.net mvc 3 を使用しており、目立たない javascriptを利用したいと考えています。私は非常に長いフォームを設計していますが、分割しないと非常に圧倒される可能性があります。
jquery フォーム ウィザードを使用して、圧倒されないようにウィザードに分割することにしました。ウィザードでデータ注釈と邪魔にならない Java スクリプトをどのように使用すればよいか、私は不思議に思っていません。
現時点では、すべてが 1 つの大きな形のままですが、ウィザードではバラバラに見えます。フォームの最後に送信ボタンが 1 つだけあり、クリックするとフォーム データがシリアル化され、そのデータでサーバーに ajax ポストが実行されます。
mvc検証を使用するときに初めて見たものから、クライアント側の検証がトリガーされる前に、ユーザーは送信ボタンをクリックする必要があります。送信を押しても何も起こらず、ウィザード全体を再度実行して検証エラーを見つける必要があるため、ユーザーがフィールドを離れると混乱するので、それが可能かどうか疑問に思っています。
間違えたらすぐに知らせてくれると助かります。
検証機能を持つ jquery フォーム プラグインを使用する jquery ウィザードは知っていますが、コードの一貫性を保つために、可能であれば 1 つの方法に固執するようにしています。
編集
これは私が送信ボタンに持っているものです
$('#frm').live('submit', function (event) {
event.preventDefault();
var $thisFrm = $(this);
ValidatorParse($thisFrm);//jQuery.validator.unobtrusive.parse(selector);
var clientCheck = $($thisFrm).validate().form();
if (clientCheck) {
// ajax post(server side validation will happen.If it does not pass serverside I send it back usually as json).
}
});
したがって、これにはいくつかの問題があります。まず、送信時に検証のみが実際にトリガーされます。それがトリガーされ、検証エラーがウィザードの 2 番目のステップにある場合、ユーザーには表示されません (最初の間違った検証エラーを見つけてそのステップに切り替える方法を見つけられない限り)。
私が目にする 2 番目の問題は、検証エラーがあるかどうかを確認するために最後まで待たなければならないことです。私はむしろ彼らにできるだけ早く知らせます。
編集
ウィザードは jquery 検証を使用しているようですが、何らかの理由で mvc jquery 検証方法で動作していません。
さらに調査したところ、ウィザードはトリガーするクラスとして「必須」を確認する必要があることがわかりました
// will trigger validation
<input type="text" value="" name="AnnualFee" id="AnnualFee"
data-val-required="Annual Fee Required"
data-val="true"
class="required ui-wizard-content ui-helper-reset ui-state-default error">
// will not trigger validation
<input type="text" value="" name="AnnualFee" id="AnnualFee"
data-val-required="Annual Fee Required"
data-val="true"
class="ui-wizard-content ui-helper-reset ui-state-default">
クラスを使用してフォームを検証するjqueryの検証のドキュメントには表示されません。これはその人が作ったものですか?