1

我在 Stackoverflow 上找了一个小时,不幸的是因为我无法将它应用于我的情况,所以没有运气。我不是编码员,所以请调整您对我的代码的响应。在我们的电子商务网站上,买家以小写字母输入他们的地址和姓名。由于各种原因,我们不希望这样,并且希望每个单词大写的数据存储(因此 text-transform 的 CSS)不适用于后端。

假设字段名称为:

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

我需要在上面的代码中添加什么以及我需要在该部分中添加什么以使每个单词都以大写开头?

非常感谢。

4

3 回答 3

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)"

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

于 2012-08-02T18:23:02.063 回答
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是输入框中的实际文本。因此,您使用我最初链接到的函数将每个单词的第一个字母设置为大写。

于 2012-07-30T09:37:35.667 回答
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.
于 2012-07-29T14:14:10.310 回答