2012-07-29 108 views
1

我在Stackoverflow上查找了一個小時,很遺憾沒有運氣,因爲我無法將它應用於我的情況。我不是一個編碼器,所以請根據我的代碼定製您的迴應。在我們的電子商務網站上,買家以小寫字母輸入他們的地址和姓名。由於各種原因,我們不希望這樣,並且希望每個字大寫的數據存儲(因此文本轉換的CSS)將不適用於後端。對輸入字段中包含的每個單詞進行首字母大寫

假設字段名稱爲:

<input type="text" value="" name="FormField[1][1]" id="FormField_1" class="Textbox Field200 FormField"> 

我需要什麼添加到上面的代碼什麼,我需要投入部分讓每一個字一個大寫beginnging?

非常感謝。

+0

沒有爲這裏的答案: http://stackoverflow.com/questions/196972/convert-string-to-title-case-with-javascript/196991#196991 – Jay 2012-07-29 12:30:34

+0

謝謝你,但我在哪裏放它(在頭部分,並圍繞代碼包裝JS標籤),我是否需要更改我在原始文章中給出的代碼的任何內容? – Jack 2012-07-29 13:30:06

回答

1

其實,現在我覺得很抱歉,你應該在服務器端做到這一點。 因此需要更多的信息來告訴我們你在服務器端使用什麼語言(例如php,C#等)。您提供的代碼是HTML,它位於客戶端,這意味着您不會真正處理文本(用戶的詳細信息)。

我敢肯定,如果你告訴我們服務器端代碼是什麼,更多的人會提供輸入。

編輯 的流程是這樣的:

Client-side form -> Server-side processing -> Database storage 
+---------------+   +----------+   +------------+ 
| Name: ted | -> | ted->Ted | -> | Name: Ted | 
+---------------+   +----------+   +------------+ 

EDIT 2 比方說,你張貼的例子場是第一個名字。這不是測試,所以我不知道,如果它的工作原理:

$first_name = ucwords($_POST["FormField[1][1]"]); 
// $_POST gets the value from the form with the 'name' attribute as 'FormField[1][1]' 
// ucwords() is a php function to capitalise the first letter of each word in a sentence. 
+0

好的,謝謝。這是PHP。謝謝。 – Jack 2012-07-29 14:18:27

+0

在客戶端頁面上沒有簡單的方法,雖然在用戶單擊文本框之外後,它會檢查每個單詞是否大寫或在客戶端正在輸入新單詞時進行操作?謝謝。 – Jack 2012-07-29 14:21:49

+0

說實話,我對JavaScript不太熟悉,所以我在那裏幫不了你。 – Jay 2012-07-29 14:26:03

1

既然你沒有在這裏得到一個答案,我想我給這個一杆。

首先,你需要使用JavaScript 的onblur()功能,當用戶點擊離開從輸入框中檢測到。

<input type="text" onblur="upperCaseFirstLetters(this.id) value="" name="FormField[1][1]" id="FormField_1" class="Textbox Field200 FormField""> 

的onblur()調用upperCaseFirstLetters()函數。 this.id在該函數的括號內獲取文本框的ID,以便您可以主要包含在其中的文本。

最後,您需要在腳本標籤中創建該功能。

<head> 
<script type="text/javascript"> 
    function upperCaseFirstLetters(elm) { 
     var myTextObject = document.getElementById(elm); 
     myTextObject.value = myTextObject.value.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 
    } 
</script> 
</head> 

輸入框的元素存儲在變量myTextObject,通過它的id獲取元素。 myTextObject.value是輸入框中的實際文本。所以你使用我最初設定的linked的函數將每個單詞的第一個字母設置爲大寫。

+0

非常感謝您的回覆。我有這個代碼,但不知道它是否正確。我不確定要改變哪些部分,即調用輸入字段以及代碼的實際部分。你認爲下面是什麼? '' – Jack 2012-08-01 23:22:49

+0

'' – Jack 2012-08-01 23:22:55

1
<script type="text/javascript"> 

function upperCaseFirstLetters(ABC123) { 
    var myTextObject = document.getElementById(ABC123); 
    myTextObject.value = myTextObject.value.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 

} 

<input type="text" class="Textbox Field150 InitialFocus" onblur="upperCaseFirstLetters(this.id)" name="login_email" id="login_email"> 

您必須使用正是這行代碼中的每個輸入

onblur="upperCaseFirstLetters(this.id)" 

的功能並不需要修改。只要您在輸入中包含上面的代碼行,該功能就會起作用。

相關問題