Asp.net mvc 2 ASP.NET MVC-下拉列表验证问题
我在一个页面的表单中有两个下拉列表,其中包含相同的值(一个语言列表)。我希望确保用户不会在每个下拉列表中选择相同的值 我已经尝试使用JavaScript来确保所选的值不相同,它可以正常工作,但表单仍然会提交 实现这一目标的最佳方式是什么 以下是我认为的代码:Asp.net mvc 2 ASP.NET MVC-下拉列表验证问题,asp.net-mvc-2,drop-down-menu,validation,Asp.net Mvc 2,Drop Down Menu,Validation,我在一个页面的表单中有两个下拉列表,其中包含相同的值(一个语言列表)。我希望确保用户不会在每个下拉列表中选择相同的值 我已经尝试使用JavaScript来确保所选的值不相同,它可以正常工作,但表单仍然会提交 实现这一目标的最佳方式是什么 以下是我认为的代码: <script type="text/javascript"> function CheckLanguageDDL() { var form = document.getElement
<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>
函数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)
{
警报(“源语言和目标语言必须不同!”);
返回;
}
}
要求
m、 SourceLanguage)%>:
m、 SourceLanguage)%%>
m、 TargetLanguage)%>:
m、 TargetLanguage)%%>
谢谢。使函数返回表单提交使用的真/假返回值
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)
{
return false;
}
return true;
}
在按钮上:
onclick="return CheckLanguageDDL();"
它显然不好用。你能发布你的代码吗?当表单未验证时,您如何取消提交?您如何调用
CheckLanguageDDL
函数?抱歉-在复制/粘贴过程中遗漏了一些代码。它可以工作-谢谢。这是解决我遇到的问题最快的方法之一@吉米C-很高兴能帮上忙:)