unobtrusive validación jQuery en elementos creados por javascript MVC3

Tengo un formulario de registro creado por mvc3 scaffolding.

p.ej

<div class="editor-label">
    @Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Email)
    @Html.ValidationMessageFor(model => model.Email)
</div>

y así

Tengo una lista desplegable donde el usuario puede seleccionar si es una persona o una empresa. Si se selecciona a la persona, la página se carga con las propiedades de la persona, como la fecha de nacimiento, pero si selecciona la opción 'compañía', cambio una parte del formulario (con jquery .detach () .attach ()) a una oculta div fuera del formulario (para que los valores no se publiquen en el envío)

Esto funciona bien con mi validación personalizada y modelos de vista, el único problema es que no hay validación jquery para los elementos recién conectados.

Me gustaría usar una validación discreta de jquery, pero ¿cómo adjunto los controladores manualmente a los nuevos elementos de formulario (o vuelvo a analizar todo el dom para la validación)?

edit: después de consultar esta publicación de blog:http: //xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content

He intentado actualizar mi código. He incluido el javascript descrito allí, e intenté volver a analizar la parte recién insertada del formulario. cuando no hizo ninguna diferencia, cambié a .remove () y .html () mi código e inserté el html simple, pero no ayudó de ninguna manera. aquí está mi guión:

    <script>
        $(document).ready(function () {
            var secretholder = $('#secret_from_holder');
            var visibleholder = $('#type_data_holder');
            var select = $('select#TypeValueID');
            select.change(function () {
                var value = $('select#TypeValueID option:selected').val();
                switch (value) {
                    case '1':
                        var tohide = visibleholder.html();
                        visibleholder.children().remove();
                        var toshow = secretholder.html();
                        secretholder.children().remove();

                        secretholder.append(tohide);
                        visibleholder.append(toshow);

                        $.validator.unobtrusive.parseDynamicContent('div.firm');
                        break;
                    case '2':
                        var tohide = visibleholder.html();
                        visibleholder.children().remove();
                        var toshow = secretholder.html();
                        secretholder.children().remove();

                        secretholder.append(tohide);
                        visibleholder.append(toshow);

                        $.validator.unobtrusive.parseDynamicContent('div.person');
                        break;
                }
            });
        });
    </script>

aquí está mi parte oculta fuera del formulario que cambio:

    <div id="secret_from_holder" style="display: none">
    @if (Model.TypeValueID == Constants.Crm.Customer.Types.FIRM_VALUE_ID)
    {
        <div class="person">
            <div class="editor-label">
                @Html.LabelFor(model => model.Person.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Person.Name)
                @Html.ValidationMessageFor(model => model.Person.Name)
            </div>
            <div class="clear"></div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Person.BirthDate)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Person.BirthDate)
                @Html.ValidationMessageFor(model => model.Person.BirthDate)
            </div>
            <div class="clear"></div>
        </div>
    }
    else
    { 
        <div class="firm">
            <div class="editor-label">
                @Html.LabelFor(model => model.Firm.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Firm.Name)
                @Html.ValidationMessageFor(model => model.Firm.Name)
            </div>
            <div class="clear"></div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Firm.BankAccountNumber)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Firm.BankAccountNumber)
                @Html.ValidationMessageFor(model => model.Firm.BankAccountNumber)
            </div>
            <div class="clear"></div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Firm.Tax)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Firm.Tax)
                @Html.ValidationMessageFor(model => model.Firm.Tax)
            </div>
            <div class="clear"></div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Firm.EuTax)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Firm.EuTax)
                @Html.ValidationMessageFor(model => model.Firm.EuTax)
            </div>
            <div class="clear"></div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Firm.TradeNumber)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Firm.TradeNumber)
                @Html.ValidationMessageFor(model => model.Firm.TradeNumber)
            </div>
            <div class="clear"></div>
        </div>                   
    }
    </div>

Estoy realmente atrapado aquí, por favor ayuda.

la parte analizada automáticamente (al cargar la página) siempre se valida (incluso si se cambia y se vuelve a activar), pero la parte que intento analizar manualmente nunca valida

Respuestas a la pregunta(2)

Su respuesta a la pregunta