2016-07-09 9 views
0

sagen, dass ich diesen JQuery-Code habe:Wie kann die Validierung in einem dynamischen Textfeld basierend auf dem Modell hinzugefügt werden?

$('.additems').click(function() { 
      $table = $('.item'); 

    $table.append('<tr> <td> <input type="textbox" name="test"> </td> </tr>'); 

}); 

Und ich mag die Validierung von dem [Required] Attribute meines Modells ermöglichen, die die Eigenschaft test

ich von den @Html.ValidationMessageFor den automatisch generierten HTML versuchte, enthalten das Hinzufügen, das ist <span class="field-validation-valid" data-valmsg-for="test" data-valmsg-replace="true"></span> aber es funktioniert nicht.

Wie mache ich das?

+1

Ihrer Ansicht erstellen vorübergehend die Elemente mit '@ Html.TextBoxFor (m => m.test)' und '@ Html.ValidationMessageFor (m => m. test) 'und prüfen Sie den HTML-Code. Und sein 'type =" text "', nicht '" textbox "'. Wenn Sie versuchen, neue Elemente dynamisch zu einer Sammlung hinzuzufügen, lesen Sie die Antworten [hier] (http://stackoverflow.com/questions/29161481/post-a-form-array-without-successful/29161796) # 29161796) und [hier] (http://stackoverflow.com/questions/29837547/set-class-validation-for-dynamic-textbox-in-a-table/29838689#29838689) –

+0

So bekommen Sie die generierte HTML und append es mit dem gleichen Format/Inhalt? –

+1

Ja, wenn die Eigenschaft, an die Sie binden, 'IEnumerable test' ist, dann wird es funktionieren, aber wenn Sie eine Bindung zu einer Sammlung komplexer Objekte haben, benötigen Sie Indexer gemäß den Antworten, mit denen ich verlinkt bin. –

Antwort

0

können Sie andere Lösung versuchen

$('.additems').click(function() { 
    $table = $('.item'); 
    $table.append('<tr> <td> <input type="textbox" class="myReq" name="test"> </td> </tr>'); 

}); 
function foo() { 
    $(".myReq").each(function() { 
     //Your Control 
    }); 
} 
Verwandte Themen