2012-11-08 56 views
2

我們網站的後端開發人員對錶單處理有一個div.errors,它始終存在,但除非表單提交中存在錯誤,否則它是空的。它最初容易隱藏div,然後檢查它是否有長度,如果它顯示它。如何在頁面刷新時觸發事件

if ($(".errors").text().trim().length) { 
    $(this).css('display', 'block'); 
} 

的問題是這樣的,在頁面載入div.errors是空的,隱藏的。當你提交表單時,div.erros會有錯誤,但是頁面會刷新(重新加載),並且事件不會再次觸發。是一個可行的選擇嗎?

+0

如果你不希望頁面被刷新,您可以使用AJAX提交數據到服務器。 – elclanrs

+0

從服務器端語言設置錯誤變量,如果他們有錯誤,如果沒有,不要設置他們 – Jashwant

+0

elclanrs,Jashwant - 這兩個非常好的想法,我會提出。謝謝。 –

回答

2

的問題是,this停止指的是元素:

$(".errors").each(function() { 
    if ($(this).text().trim().length) { 
     $(this).css('display', 'block'); 
    } 
}); 
+0

輝煌,真的很感激它。 Thx,可能需要我花幾天時間才能弄清楚。 –

1

實時不是一個選項,當你動態地向頁面添加元素時使用實時。您需要某種狀態管理技術來保存頁面刷新之間div.errors的值。我建議你使用cookies,因爲它們可以在JQuery中輕鬆訪問。

相關問題