我有一個選項卡設置,其中每個選項卡的內容通過ajax加載。 #tab1
是靜態的 - 並且經過驗證的表單的工作原理與通過頁面加載時運行的$(".validate").validate()
一樣。 但tab2
有相同的形式 - 它並沒有得到驗證。 我假設它是因爲調用初始函數時第二種形式不存在。 ,但即使我在運行ajax時再次調用validate()
函數 - 即使這樣,表單也不會被驗證。通過引導標籤驗證ajax生成的內容
HTML:
<div class="tabbable">
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1" data-toggle="tab">Personal Details</a></li>
<li><a href="test-content.html" class="ajax" data-toggle="tab">Finances</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1">
<form name="ftblPaymentsadd" id="ftblPaymentsadd" action="#" method="post" enctype="multipart/form-data" class="validate" >
<input type="text" name="sss" class="required">
<input type="submit" value="go">
</form>
</div>
<div class="tab-pane active" id="tab2">
<!-- content will be loaded via ajax -->
</div>
</div>
</div>
內容來自text-content.html
來:
<form name="ftblPaymentsaddww" id="ftblPaymentsaddww" action="#2" method="post" enctype="multipart/form-data" class="validate" >
<input type="text" name="ssswwws" class="required">
<input type="submit" value="go">
</form>
JS:
$('.nav-tabs .ajax').click(function (e) {
var thisTab = e.target // activated tab
var pageTarget = $(thisTab).attr('href');
var itemNumber = $(this).parent().index()+1;
$('.tab-pane').removeClass('active');
$("#tab"+itemNumber).html('loading...');
$("#tab"+itemNumber).load(pageTarget,function(){
$(".validate").validate();
}).addClass('active');
});
你是否將任何規則添加到'.validate()'?如果在DOM準備就緒時添加它們,則必須在完成ajax後重新添加它們。 – Spokey 2014-11-05 15:46:35
未添加任何規則。我認爲再次調用validate()就足夠了。你能否進一步解釋一下要添加什麼,以及在哪裏? – kneidels 2014-11-05 15:49:14