Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any way to prevent form submit in MVC 5?

I have a from.

@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>
}

Everything is working fine. I have a dropdwon which is out of the form. I want to check, if dropdown value is selected,then form can be submitted otherwise it will not submit. In short, the dropdown selection is required and it is out of the form. I can check the value of dropdwon weather it is selected or not with jquery or javascript. My question is how i prevent to submit the form if value is not selected?

like image 804
CodeLover Avatar asked May 04 '16 08:05

CodeLover


2 Answers

With jQuery it's simple:

$("#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
      }
}

To set id to your form use this overload:

Html.BeginForm(null, null, FormMethod.Post, new { id = "your_form_id" })
like image 179
teo van kot Avatar answered Oct 05 '22 16:10

teo van kot


I think the most correct way to handle this is to use validation http://www.asp.net/mvc/overview/getting-started/introduction/adding-validation

Mark the field of your model that bound with dropdown list with validation attribute. The advantage of this method - you can validate on server side by calling ModelState.IsValid. Server validation will work even if javascript will be disabled.

like image 40
eternity Avatar answered Oct 05 '22 15:10

eternity