2012-02-13 47 views
0

我正在使用一個表單,並且前端開發人員在文本框內部具有默認文本。例如,郵政編碼輸入框沒有標籤,但是在框中有預先填充的文本。這裏是一個輸入的例子如何處理預先填充的文本框(帶默認描述性文本的文本框)客戶端?

<input id="place" name="place" type="text" value="(City, State or Zip Code)" 

這個特定的輸入是在搜索表單上。這個輸入和其他輸入一起通過ajax傳遞給服務器。當結果到達服務器時,有一個稱爲「place」的post變量,如果用戶未更改,則值爲「(城市,州或郵編)」。我想知道是否有可以輕鬆實現的前端解決方案,以便如果默認文本未更改(輸入中沒有內容),服務器將會將$ _post變量視爲空。我已經知道我可以檢查服務器,並看到

if $_post[place] == "(City, State or Zip Code)" 
//place is empty, omit it from the search query 

但我正在尋找更好的方法,如果有更好的方式存在。

你如何處理默認輸入文本?

謝謝!

編輯:總而言之,我正在尋找一種方法將這個和其他輸入傳遞給服務器,如果它們沒有被用戶更改,它們將顯示爲空白。我想在沒有使用前面提到的$ _post [place] ......的情況下,在服務器端執行該操作,如果可能的話,還要在客戶端執行。

回答

0

您可以讓JavaScript(在瀏覽器中運行)比較當前值和默認值。如果它是默認值,那麼不要在請求中沿着該特定變量傳遞Ajax。

+0

很快!我在這個問題上加了一點點,所以你可能沒有看到它。是否存在任何檢查方式是當前值==默認值?我可以做檢查服務器端,如果不存在另一種方法,我可能會這樣做。謝謝! – 2012-02-13 01:47:05

0

克里斯D.你的問題回答狐狸,如果你使用jQuery,你可以在data()的默認值存儲在click(),然後發送請求時,比較新的數據VS存儲的一個。
@valentinasplaceholder僅在HTML5中受支持,因此可能不是他正在尋找的內容。

$('input').click(function(){ $(this).data('default', $(this).val()); }); 

// On your request 
if ($('input').val() === $('input').data('default')) {} 
+0

如果需要,可以爲舊版瀏覽器添加回退:http://davidwalsh.name/html5-placeholder。 – valentinas 2012-02-13 01:59:58

+0

哦,是的,我知道,但也許他沒有使用HTML5 ... – elclanrs 2012-02-13 02:01:41

+0

感謝您的回覆。我不是前端人物,但佔位符聽起來像是一個可能的答案。但是,你說這可能不適用於所有瀏覽器(我已經知道它在IE中不起作用,我甚至還沒有測試過它:p)。我真的只想做佔位符的事情,但我不想陷入錯誤 – 2012-02-13 02:02:47