自定义asp.net mvc 3 jquery.validate.unobtrusive

时间:2011-09-22 18:12:22

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

我正在将一个站点从asp.net mvc 2转换为asp.net mvc 3.我想在mvc 3中使用内置验证,它使用jquery.validate和jquery.validate.unobtrusive。但是在我的旧网站上,我已经使用了jquery.validate并添加了自定义方法进行验证,然后我会在下拉列表更改时调用。

我需要能够:

  1. 注册此方法。
  2. 仅在下拉列表更改时调用。
  3. 这是我的asp.net 2网站上的代码。

    //add class to the html element
    $("#ClientId-input").addClass("validClient");
    
    //create the method "validClient"
    $.validator.addMethod("validClient", function(value, element) {
    
        //get the actual value in the input box
        var _value =  $("#ClientId").data('tComboBox').value();
    
        //get all the items in the list
        var _items = $("#ClientId").data('tComboBox').data;
    
        //set the value to return
        var _retVal = false;
    
        //loop through the items if the selected value equals a value we are valid
        $.each(_items, function(index, value)
        {
            if(value.Value == _value){
                _retVal = true;
    
                //return false in the loop to break.
                return false;
            }
        });
    
        return _retVal;
    
    }, "Please choose a Client from the list.");
    
    
    //Assign the rule to the validator
    $.validator.addClassRules({
        validClient:{validClient:true}
    });
    
    
    //this is called when dropdownchanges
    function ClientsChanged(e)
    {
    
        if($("#ClientId-input").valid())
        {
            //do work here
        }
    }
    

1 个答案:

答案 0 :(得分:0)

在我的回答here中,您将看到代码显示如何添加和注册自定义验证方法,以便MVC 3不显眼的验证将处理您的自定义验证器。