大写输入字段中包含的每个单词

时间:2012-07-29 12:25:39

标签: javascript capitalization capitalize

我已经在Stackoverflow上寻找了一个小时并且不幸没有运气,因为我不能将它应用到我的环境中。我不是编码员,所以请定制您对我的代码的回复。在我们的电子商务网站上,买家输入他们的地址并以小写字母命名。由于各种原因,我们不希望这样,并希望每个单词大写的STORED数据(因此文本转换的CSS)不适用于后端。

假设字段名称为:

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

我需要在上面的代码中添加什么?我需要在该部分中添加什么才能让所有单词都以大写字母开头?

非常感谢。

3 个答案:

答案 0 :(得分:1)

实际上,对不起,我想一想,你应该在服务器端这样做。 因此需要更多信息来告诉我们您在服务器端使用的语言(例如php,C#等)。您提供的代码是客户端的HTML,这意味着您不会真正处理文本(用户的详细信息)。

我敢肯定,如果你告诉我们服务器端代码是什么,会有更多人提供输入。

修改 流程如下所示:

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

编辑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.

答案 1 :(得分: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的函数将每个单词的第一个字母设置为大写。

答案 2 :(得分: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)"

该功能无需修改。只要您在输入中包含上述代码行,该函数就可以使用。