Asp.net mvc 2 ASP.NET MVC-下拉列表验证问题

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

我在一个页面的表单中有两个下拉列表,其中包含相同的值(一个语言列表)。我希望确保用户不会在每个下拉列表中选择相同的值

我已经尝试使用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>

函数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-很高兴能帮上忙:)