将字符串转换为标题大小写不起作用,并使用输入字符串all javascript填充div标记
我一直在努力使用以下代码。基本上,我以这个例子为例,并在使用它,我也有一个代码,它采用名称并将其填充到div标记中,但是,它似乎会向下移动文本,因此,例如,当我键入john smith时,我没有得到约翰·史密斯的提名,然后在提名的地方写上父亲的全名,但把剩下的部分下移一行,所以父亲的全名下移一行,有人能帮我解决这个问题吗将字符串转换为标题大小写不起作用,并使用输入字符串all javascript填充div标记,javascript,html,Javascript,Html,我一直在努力使用以下代码。基本上,我以这个例子为例,并在使用它,我也有一个代码,它采用名称并将其填充到div标记中,但是,它似乎会向下移动文本,因此,例如,当我键入john smith时,我没有得到约翰·史密斯的提名,然后在提名的地方写上父亲的全名,但把剩下的部分下移一行,所以父亲的全名下移一行,有人能帮我解决这个问题吗 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en-GB">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hello whirled</title>
</head>
<body>
<h1>Bla Bla
</h1>
<form name="input" action="submit.php" method="post">
<p>
Other Text goes here
</p>
<p>
How do you wish to be referred to informally?
<input id="name1" type="text" name="groominame" onchange="toTitleCase(this.value); fathersName(this.value);" />
</p>
<div id="display1"></div>
's full name:
<input type="text" name="fname" />
<noscript>
<div>
If you can see this then SCRIPTS are turned OFF on your machine and it won't work
</div>
</noscript>
<script type="text/javascript">
function toTitleCase(str) {
alert(str); //test
return str.replace(/\w\S*/g, function (txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
function fathersName(textarea) {
alert(textarea); //test
document.getElementById("display1").innerHTML = textarea;
}
</script>
</form>
</body>
</html>
你好旋风
布拉布拉
其他文本在这里
你希望被非正式地介绍给谁?
的全名:
如果您能看到这一点,那么您的机器上的脚本将被关闭,它将无法工作
函数toTitleCase(str){
警报(str);//测试
返回str.replace(/\w\S*/g,函数(txt){
返回txt.charAt(0.toUpperCase()+txt.substr(1.toLowerCase();
});
}
函数父名称(textarea){
警报(textarea);//测试
document.getElementById(“display1”).innerHTML=textarea;
}
您需要首先将其转换为大写,然后显示它。您只需将其返回到别处,而不是将其保存在变量中或将其放置在正确的位置。
div会移动,因为在div的末尾有一条新行,如果不希望有效果,请使用span元素
<div id="display1" style="float: left;margin: 3px 0px;"></div>
所以输入标记更改为
<input id="name1" type="text" name="groominame" onChange=" fathersName(this);"/>
如果您只想在其他字段中使用toTitleCase,则使用toTitleCase(this)
您的JavaScript语法根本不起作用……我知道一个简单的JQuery代码,您更喜欢它?您没有使用返回值
toTitleCase
执行任何操作。你以某种方式转换输入,但你没有使用输出。我不知道你的意思是什么Alexandre?父亲的名字在我的电脑上起作用,它确实替换了DIV框中的文本,但我无法使它大写。@Dino也许你应该试试document.getElementById(“name1”).value=name代码>我需要输入的字段在离开输入字段后也更改为大写。这就是为什么我把它们放在一个单独的函数中,所以mohamedrias,当我尝试上面相同的函数来填充输入字段时,它不会这样做。你知道为什么吗?我已经更新了答案,仍然不需要两个函数:)而不是传递this.value,你只需要在fathersName(this)中传递this;我明白了,但我确实需要将这些函数分开,因为我在其他输入值上使用convert-to-upper-case。例如,我有另一个名为Brides Name的字段,所以一旦他们离开该字段,就需要自动将其大写(名称的第一部分)。希望你能理解。
<input id="name1" type="text" name="groominame" onChange=" fathersName(this);"/>