2011-05-21 148 views
1

我正在使用rails 3 UJS作爲我的表單。防止提交默認值的字段

在其中一個字段中,我的默認值爲「ABC」。

如果用戶沒有更改字段,我不希望提交此值。

1)這是一個可選字段,所以我不希望阻止的形式從提交

2)我可以劫持「:之前」行動,但似乎的hackish我

這看起來像一個常見用例 - 做這件事最優雅的方式是什麼?

回答

2

如果您只想支持支持HTML5的瀏覽器,則可以使用<input>標記的placeholder屬性,而不是設置您不想提交的值。

<input type="text" placeholder="ABC" /> 

記住,IE9不支持此屬性(source)。

如果您不願意,可以使用窗體的submit事件來清除表單域,如果它沒有被更改。

$("#my-form").submit(function(event) { 
    var input = $("#my-input-box"); 
    if (input.val() === "ABC") { 
     input.val(""); 
    } 
}); 

您可能會發現用戶有時想在框中鍵入「ABC」。您可以通過在更改內容時設置標誌並檢查標誌是否設置在上述代碼中而不是將當前值與默認值進行比較來解決此問題。

+0

謝謝薩米爾!主要問題是我需要不斷確保我的html和我的js是同步的,這是總會導致錯誤的東西 – 2011-05-22 07:43:32

+0

因此,使用類標記帶有佔位符的輸入,而只是搜索該類。然後對所有元素進行處理,而不是僅處理一個。 – 2011-05-22 12:57:49