Я использую плагин jQuery Validation , и у меня есть проблема с проверкой элементов, которые находятся во вложенных элементах div в моей форме:
<form id="form1" runat="server">
<div id="theForm">
html <input type="text" class="required date"/>
<br />
aspx <asp:TextBox runat="server" CssClass="required" ID="txtone"></asp:TextBox>
<br />
<div id="subArea"><input type="text" class="required" /></div>
</div>
<asp:Button runat="server" ID="btnSub" Text="Save"
onclick="btnSub_Click"/>
</form>
и мои настройки с помощью jQuery:
<script type="text/javascript">
$( document ).ready( function ()
{
$('#<%= Form.ClientID %>').validate();
}
);
alert('<%= Form.ClientID %>');
</script>
Конечным результатом является то, что первые два поля работают как положено, но поле ввода в doe нет. Должен ли я сделать что-то особенное с селекторами или добавить поле специально? Кроме того, если бы мне пришлось динамически добавлять поля в dom, как я могу снова прикрепить функцию validate () к форме, чтобы я включил новые динамические поля ввода?
решаемые
Многие SO Cred обращаются к Богу Рока tvanfosson за указанием на то, что входным тегам не хватает атрибутов id и name. Как только я добавил их, валидатор сработал. ДОПОЛНИТЕЛЬНО круто, что если у вас есть шаблон на стороне клиента, там также работает techinque:
<script type="text/html" id="template">
<#
var i;
for(i=0; i < 2; i++)
{
var id="tryit" + i;
#>
field: <#= id #> <input type="text" class="required" id="<#= id #>" name="<#= id #>"/>
<br/>
<#
}
#>
</script>
<form id="form1" runat="server">
<div id="theForm">
html <input type="text" class="required date" id="htmlText" name="htmlText"/>
<br />
aspx <asp:TextBox runat="server" CssClass="required" ID="txtone" name="txtone"></asp:TextBox>
<br />
<div id="subArea"><input type="text" class="required" id="subOne" name="subone"/></div>
<div id="newArea"></div>
</div>
<asp:Button runat="server" ID="btnSub" Text="Save"
onclick="btnSub_Click"/>
</form>
<script type="text/javascript">
$( document ).ready( function ()
{
var newHTML = parseTemplate($('#template').html(), {"one" : "one"});
$('#newArea').html(newHTML);
$('#<%= Form.ClientID %>').validate();
}
);
</script>