web-dev-qa-db-ja.com

MVC 3の[キャンセル]送信ボタンでクライアント側の検証を無効にする

OK、何時間も試行錯誤を繰り返していて、助けが必要な場合があります。 「戻る」ボタンと「次へ」ボタンがあるMVC 3でページを実装しようとしています。 [戻る]ボタンをクリックすると、クライアント側のMVC検証の実行を無効にして、アクションメソッドが実行され、ユーザーが前の論理Webページに送信されるようにします。私はこれを試しました:

<script type="text/javascript">
  document.getElementById("backButton").disableValidation = true;
</script>

この:

<input type="submit" name="backButton" value="← Back" 
 title="Go back to step 1." disableValidation="true" />

しかし、何があろうと、クライアント側の検証JavaScriptが起動し、ボタンにポストバックを行わせません。 disableValidationはおそらくMVC 2でのみ機能すると考えており、MVC 3で別のことをすることになっていますが、例を見つけることはできません。

54
Glenn Doten

どこかに質問を投稿するとすぐに答えが明らかになるこの神秘的な力は何ですか?

MVC 3では、クラスに「キャンセル」を追加することで、ボタンのクライアント側検証を無効にしているようです。だから私の例では:

<input type="submit" name="backButton" value="← Back"
 title="Go back to step 1." class="cancel" />

よく働く。また、ID属性も必要ありません。ボタンに実際のスタイルクラスがある場合は、次のようにします。

<input type="submit" name="backButton" value="← Back"
 title="Go back to step 1." class="style-name cancel" />
125
Glenn Doten

検証スクリプトは、送信タイプinputにリンクされているようです。 cancelをボタンに変更すると、検証はスキップされます。

<button type="button" onclick="document.location.href('Index')">Cancel</button>
1
David