2012-10-27 25 views
0

我有一個形式的組合框,用HTML編寫的,像以下:如何提交小寫的表單值?

<form name="formname" action="formaction.php" method="get"> 
    <select name="selectname"> 
     <option>Option1</option> 
     <option>Option2</option> 
     <option>Option3</option> 
    </select> 
    <!-- other inputs --> 
</form> 

提交後一個例子網址將是「formaction.php selectname =選項?」。我希望在URL中傳遞選項值作爲「option1」,但我想避免每個選項都有一個value屬性,等於選項的innerHTML(我也考慮過通過JS動態執行此操作)。注意:我已經在服務器端處理值而不考慮字符大小寫;我只想爲了美觀而做到這一點。

我的目標是提交小寫形式的所有表單值。

我已嘗試加入onsubmit屬性到窗體具有state = state.toLowerCase(),和類似形式等指經由文檔元素的值,通過ID檢索。

這是可能的,還是必須動態地將每個選項的value屬性設置爲其小寫形式?

+1

爲什麼不處理服務器端的值? –

+0

@AndreDublin我已經不區分大小寫處理服務器端的值。雖然聽起來有點OCD,但我只是在尋找這個答案,以保持url完全小寫,因爲我相信'key = value'在URL中看起來比'key = value'更乾淨。 – Vulcan

+0

我看,看起來好像Ibu的css解決方案可能是您最好的選擇。 –

回答

3

在javascript中沒有本地方法將所有窗體值設置爲小寫。

您可以輕鬆地在服務器端處理這些值並將其轉爲小寫。或者您也可以打印出來作爲您的HTML小寫和使用CSS來顯示他們的第一個字母大寫:

<select name="selectname"> 
     <option>option1</option> 
     <option>option2</option> 
     <option>option3</option> 
    </select> 

select option { 
    text-transform:capitalize; 
} 
+0

如果有人通過禁用CSS或通過文本查看器來查看此內容,會發生什麼情況? –

+0

@MartinLyne好點,但這不應該是一個問題,因爲數據在服務器端不區分大小寫。對於CSS禁用的用戶來說,它在美學上看起來有點奇怪(帶有小寫的選項),但我確定希望我的論壇中心網站沒有任何禁用CSS的用戶。 – Vulcan

0

如果你真的必須做到這一點的前端那麼我建議你使用的東西像jQuery要查找一個頁面$('input')(想到所有的輸入,服務器端通常應該是你的第一個端口的呼叫,甚至更好,形成你的HTML時只使用<option value="lowercaseversion">Upper Case Version</option>

但是,客戶端解決方案,CLL此功能在提交表格之前:

myLowerCaser() 
{ 
$('input').each(function(i, input) 
{ 
    input.val(input.val.toLowerCase()) 
} 
return true; 
} 

如果您只希望它隻影響某些事情(如JUT組合框將是$('select.selectname')

+0

我試圖用這個解決方案(正如我在我的問題中所說的)使用'onsubmit'屬性來無效。但是,我沒有嘗試在提交按鈕的'onclick'屬性中這樣做。我也在我的問題中解釋過,我不想將每個選項的值設置爲顯示內容的小寫值。不過謝謝。 – Vulcan

+0

自從我看到它以來,問題發生了很大變化:-) –

+0

自發布以來,問題中唯一的變化是我添加了關於服務器端的註釋,而這個註釋是無關緊要的。 – Vulcan