2012-07-29 60 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)" 

的功能并不需要修改。只要您在输入中包含上面的代码行,该功能就会起作用。

相关问题