同じ値(言語のリスト)を含むページのフォームに2つのDropDownListsがあります。私は、ユーザーが各ドロップダウンで同じ値を選択しないようにしたい。ASP.NET MVC - DropDownList検証問題
JavaScriptを使用して選択した値が同じでないことを確認しようとしましたが、うまく機能しますが、フォームはとにかく送信されます。
これを達成する最も良い方法は何ですか?
<script type="text/javascript">
function CheckLanguageDDL()
{
var form = document.getElementById("form0");
var sourceLangIndex = form.SourceLanguage.selectedIndex;
var targetLangIndex = form.TargetLanguage.selectedIndex;
var strSourceLanguage = form.SourceLanguage.options[sourceLangIndex].text;
var strTargetLanguage = form.TargetLanguage.options[targetLangIndex].text;
if (strSourceLanguage == strTargetLanguage)
{
alert("Source Language and Target Language must be different!");
return;
}
}
</script>
<% Html.BeginForm("Index", "Translate", FormMethod.Post, new { enctype = "multipart/form-data" }); %>
<fieldset>
<legend>Request</legend>
<br />
<div class="editor-label">
<%: Html.LabelFor(m => m.SourceLanguage) %>:
</div>
<div class="editor-field">
<%: Html.DropDownList("SourceLanguage", (IEnumerable<SelectListItem>)ViewData["SourceLanguages"]) %>
<%: Html.ValidationMessageFor(m => m.SourceLanguage) %>
</div>
<br />
<div class="editor-label">
<%: Html.LabelFor(m => m.TargetLanguage) %>:
</div>
<div class="editor-field">
<%: Html.DropDownList("TargetLanguage", (IEnumerable<SelectListItem>)ViewData["TargetLanguages"]) %>
<%: Html.ValidationMessageFor(m => m.TargetLanguage) %>
</div>
<input type="submit" value="Submit Request" onclick="CheckLanguageDDL();" />
</p>
</fieldset>
ありがとう:
は、ここに私のビューからのコードです。
それは明らかに正常に動作していませんが。コードを投稿できますか?フォームが検証されなかった場合、どのように提出をキャンセルしますか? – Oded
どのように 'CheckLanguageDDL'関数を呼び出していますか? – Oded
謝罪 - コピー/ペースト中にいくつかのコードを紛失しました。 –