Multiple fields validation using Remote Validation

前端 未结 4 1178
礼貌的吻别
礼貌的吻别 2020-11-29 03:26

I have the following model:

public class Customer
{
    public string FirstName {get;set;}

    public string LastName {get; set;}

    [Remote(\"CardExistin         


        
4条回答
  •  星月不相逢
    2020-11-29 04:26

    Expanding on Jaluka's answer, I wrote this helper method that finds each remotely validating element that has "additional fields," and then causes validation on said element to fire each time one of those fields changes.

    // I hate naming things
    function initializeRemotelyValidatingElementsWithAdditionalFields($form) {
        var remotelyValidatingElements = $form.find("[data-val-remote]");
    
        $.each(remotelyValidatingElements, function (i, element) {
            var $element = $(element);
    
            var additionalFields = $element.attr("data-val-remote-additionalfields");
    
            if (additionalFields.length == 0) return;
    
            var rawFieldNames = additionalFields.split(",");
    
            var fieldNames = $.map(rawFieldNames, function (fieldName) { return fieldName.replace("*.", ""); });
    
            $.each(fieldNames, function (i, fieldName) {
                $form.find("#" + fieldName).change(function () {
                    // force re-validation to occur
                    $element.removeData("previousValue");
                    $element.valid();
                });
            });
        });
    }
    

    Call the function like so:

    $(document).ready(function() {
        initializeRemotelyValidatingElementsWithAdditionalFields($("#myFormId"));
    });
    

提交回复
热议问题