2010-03-08 21 views
2

我有一個非常小的表單,用戶可以在輸入字段中輸入他們的郵政編碼,然後按回車鍵,或者點擊提交按鈕將他們的郵政編碼提交給我們的數據庫,該數據庫將搜索結果返回給頁面。使用Enter鍵一切正常。當用戶點擊提交按鈕時,事情並不那麼順利...如何使用JavaScript僞造佔位符文本?

原因是因爲郵政編碼字段的默認文本是「郵政編碼」。當元素有焦點時,使用jQuery,我將val()設置爲''。

$('div.program-locator input#zipcode').focus(function() { 
    $(this).val(''); 
}); 

當焦點離開現場,我用的是.blur事件來設置現場發回的「郵政編碼」。

$('div.program-locator input#zipcode').blur(function() { 
    $(this).val('Zip Code'); 
}); 

問題在於這樣一個事實,當用戶點擊提交按鈕時,.blur事件被稱爲,設置Zip Code字段爲「郵政編碼」的值。呸。

我該如何解決這個問題?有沒有辦法在我調用#submit.click事件之前不調用#zipcode.blur事件?

回答

3

在模糊函數中添加條件。

if($(this).val()==""){ 
    $(this).val("Zip Code"); 
} 
0

我想說你的最簡單的解決方法是:

$('div.program-locator input#zipcode').blur(function() { 
    setTimeout(function() { $('#zipcode').val('Zip Code'); }, 10); 
}); 

增加稍有延遲到復位,因此提交功能可火了。時間並不重要,只要它在提交處理程序完成後將函數排隊即可。

+0

時間絕對重要。 – 2015-09-03 12:39:47