在onchange上提交时,jQuery中的DropdownListFor验证问题

时间:2015-10-16 06:19:25

标签: javascript c# jquery asp.net-mvc

DropdownListFor

@Html.DropDownListFor(x => x.selectedDateFilter, 
                      new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), 
                      "--Select Date--", 
                      new { onchange = @"this.form.submit();", @class = "form-control" })

Jquery的

$("#selectedDateFilter").change(function (e) {       

        if ($("#selectedDateFilter option:selected").index() == 0) {
            alert("Please select the date.");
            return false;            
        }
        return true;
    });

Hello Friends,

我的问题是,当在下拉列表中选择一个项时,验证消息按预期显示,但同时表单正在提交。

如何在此场景中选择OPtionText时阻止表单提交。

提前致谢。

请帮忙

1 个答案:

答案 0 :(得分:2)

只需从下拉列表中删除onchange=@"this.form.submit();"即可。它应如下所示:

@Html.DropDownListFor(x => x.selectedDateFilter, 
                      new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), 
                      "--Select Date--", 
                      new { @class = "form-control" })

它会正常工作。

onchange=@"this.form.submit();"强制表单提交。

编辑:

如果要在正确验证时提交,请将其添加到jquery:

$("#selectedDateFilter").change(function (e) {       

        if ($("#selectedDateFilter option:selected").index() == 0) {
            alert("Please select the date.");
            return false;            
        }
        else
        {
            $(this).parent('form').submit();
        }
    });