有没有办法阻止MVC 5中的表单提交?

时间:2016-05-04 08:15:32

标签: javascript jquery asp.net-mvc forms

我有一个来自。

@using (Html.BeginForm())
{
 // From content 
 <div class="form-group btn-group">
                <button type="submit" class="btnPrimaryStyle btn  col-sm-3 col-xs-12 pull-left">Save</button>
            </div>
}

一切都很好。我有一个不在形式的dropdwon。我想检查一下,如果选择了下拉值,则可以提交表单,否则将不提交。简而言之,下拉选项是必需的,它不在形式中。我可以使用jquery或javascript检查dropdwon天气的值是否被选中。我的问题是,如果没有选择值,我如何阻止提交表单?

2 个答案:

答案 0 :(得分:8)

使用 jQuery ,这很简单:

$("#your-form-id").submit(function (e) { // note that it's better to use form Id to select form
      if($("#YourDropDownID").val() == 0 || $("#YourDropDownID").val() == '') // here you check your drop down selected value
      {
         e.preventDefault(); // here you stop submitting form
      }
}

要将id设置为form,请使用此重载:

Html.BeginForm(null, null, FormMethod.Post, new { id = "your_form_id" })

答案 1 :(得分:1)

我认为处理此问题的最正确方法是使用验证http://www.asp.net/mvc/overview/getting-started/introduction/adding-validation

使用验证属性标记与下拉列表绑定的模型字段。 此方法的优点 - 您可以通过调用ID Name Account 1 Jon 001 2 Snow 002 3 Alive 003 在服务器端进行验证。即使javascript被禁用,服务器验证也会有效。