【问题标题】:Validate DropDown using Jquery in MVC3在 MVC3 中使用 Jquery 验证 DropDown
【发布时间】:2013-04-02 13:14:15
【问题描述】:

我已经实现了简单的 MVC3 应用程序,我想验证特定的控制表单 DIV

//视图模型

public class NewStreamViewModel
    {
        public NewStreamViewModel()
        {
            this.Streams = new List<SelectListItem>();
            this.Subjects = new List<SelectListItem>();
            this.Languages = new List<SelectListItem>();
        }

        [Display(Name = "Language")]
        [Required(ErrorMessage = "{0} is Required")]
        public int? LanguageId {get;set;}


        [Display(Name = "Stream")]
        [Required(ErrorMessage = "{0} is Required")]
        public int? StreamId {get;set;}

        public int[] SubjectIds {get;set;}

        public List<SelectListItem> Languages {get;set;}
        public List<SelectListItem> Streams {get;set;}
        public List<SelectListItem> Subjects {get;set;}

    }

//View.cshtml

<div id="tab1">
@using (Html.BeginForm())
{
     <table style="background: none; width: 100%;">
                    <tr>
                        <td>
                            Language
                        </td>
                        <td>
                            @Html.DropDownListFor(m=>m.LanguageId.Value,Model.Languages)
                            @Html.ValidationMessageFor(m=>m.LanguageId.Value)
                        </td>
                    </tr>
                    <tr>
                        <td>Stream
                        </td>
                        <td>
                            @Html.DropDownListFor(m => m.StreamId.Value, Model.Streams)
                             @Html.ValidationMessageFor(m=>m.StreamId.Value)
                        </td>
                    </tr>
                    <tr>
                        <td>Subjects
                        </td>
                        <td>
                            @Html.ListBoxFor(m => m.SubjectIds, Model.Subjects, new { Style = "width:300px;" })
                        </td>
                    </tr>

                </table>
}
    <input type="button" value="Save" id="addspan" />
</div>  



<script type="text/javascript">
    $(function () {
        var count = 2;
        $('#wrap').tabs();
        $('#addspan').click(function () {
            var $step = $('#tab1');
            var validator = $("form").validate(); // obtain validator
            var anyError = false;
            var selects = $('#tab1').find('select');
            selects.each(function () {
                if (!validator.element(this)) { // validate every input element inside this step
                    anyError = true;
                }

            });
            if (anyError) {
                return false;
            }

            count++;
        });
    });
</script>

我如何在 jquery 的客户端验证这些下拉菜单?

【问题讨论】:

  • 您是否在使用不显眼的客户端验证?在这种情况下,自定义验证码需要什么?
  • @Tim 不,我没有使用不显眼的客户端验证,我只想验证来自特定 DIV 的下拉菜单
  • 检查验证here
  • @Shivkumar 没有不显眼的验证 $("form").validate() 将返回 setting.rules 为空数组的对象。你应该手动设置它们,看看这个链接:stackoverflow.com/questions/8829030/…

标签: jquery asp.net-mvc asp.net-mvc-3


【解决方案1】:

将此文件添加到您的页面(这将允许客户端验证):

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

调用:

$('form').valid()

如果没有错误,将返回true,如果有错误,则返回false,并在输入附近显示错误。

【讨论】:

    【解决方案2】:

    您可以像这样手动验证下拉菜单:

    $('#addbtn').click(function(){
    var ddlvalue= $("#dropdownid option:selected").val();
    if(ddlvalue!='-1')
    {    
       //Do your work.
    }
    else
      alert('Please select product");
    });
    

    【讨论】:

      【解决方案3】:
        <script type="text/javascript" language="javascript">
              $(document).ready(function () {
                  $('#<%=btnSubmit.ClientID%>').click(function () {
                      if ($('#<%=ddlCity.ClientID%>').val() == 0) {
                          alert('Please select Country')
                          return false;
                         }                              
                      if ($('#<%=txtName.ClientID%>').val() == "") {
                          alert(' Name')
                          return false;
                      }
      
                  });
              });  
      
          </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 2013-09-28
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多