Validate dynamically added control

后端 未结 2 1141
挽巷
挽巷 2021-01-12 02:15

How can I add the dynamically added control to validation?

@*@Html.EditorFor(model => model.Middlename)*@
相关标签:
2条回答
  • 2021-01-12 02:26

    It is technically feasible to add to the MVC client side validation by pushing values into the "window.mvcClientValidationMetadata" array of validators. There's a pretty good article here which shows some of the scripts and techniques involved. This will not help you with server side validation, but as the client won't get this input without javascript you have mitigated this.

    I would normally apply a more standard progressive enhancement pattern to this. Create the middle name input by default, and implement standard MVC validators. Then use jQuery to hide it unless (or until) required. Of course this may not fit with your requirements, but if it does, then I'd argue that's a better methodology.

    0 讨论(0)
  • 2021-01-12 02:39

    UPDATE: This answer is if you use jquery unobtrusive validation, you did not wrote what you use.

    First, add this plugin to jQuery ready: http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/

    Mind that you must add your element inside of form tag. Lets say that you have some wrapper around your tag, I will call it "element".

    After you append your element to DOM, call this:

    $.validator.unobtrusive.parseDynamicContent($(element).find("form").selector);
    var form = $(element).find("form");
    $(form).valid();
        $(form).find("input").each(function () {
            $(this).blur(function () {
                $(this).valid();
            });
        });
        $(form).find("select").each(function () {
            $(this).change(function () {
                $(this).valid();
            });
    
    0 讨论(0)
提交回复
热议问题