Sham
Sham

Reputation: 1201

client side validation is not working for DropDownListFor in razor MVC3?

When I click the button client side validation is not working below is my view and model

view:

 <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>


 @using (Html.BeginForm("Guestlogin", "Home", FormMethod.Post))
            {
                for (int i =0; i <1; i++)
                {
             @Html.DropDownListFor(per => per.[i].Gender, new[] {
                                            new SelectListItem(){Text = "Male" , Value="Male"},
                                            new SelectListItem(){Text ="Female" , Value = "Female"},
                                        }, "Select Your Gender")@Html.ValidationMessageFor(o => o[i].Gender)
            }

            <button type="submit" name="Button"/>
            }

model:

[Required]
public string Gender { set;get;}

Upvotes: 2

Views: 1034

Answers (2)

Faisal Khalid
Faisal Khalid

Reputation: 661

Simple just at this code in your view before the form:

@using (Html.BeginForm("Guestlogin", "Home", FormMethod.Post))
        {
            for (int i =0; i <1; i++)

Before that Add this below code:

   @{ Html.EnableClientValidation(); }
   @using (Html.BeginForm("Guestlogin", "Home", FormMethod.Post))
        {
            for (int i =0; i <1; i++)

Upvotes: 0

Berker Y&#252;ceer
Berker Y&#252;ceer

Reputation: 7335

check ur model:

public class urvalidationmodel
{
    [Required]
    [Display(Name = "Gender")]
    public IEnumerable<Gender> gender { get; set; }
}

js :

function Gender(sender, args) {
    var v = document.getElementById('Gender').value;
    if (v == 'Male' || v == 'Female') {
        args.IsValid = true; // Valid
    }
    else {
        args.IsValid = false; // Invalid
    }
}

Upvotes: 1

Related Questions