我有3个字段:姓名,姓氏和连续字。
我要做的是将字段名称的第一个字符与姓氏连接起来。 在我写的时候,Concat领域正在发生变化。
我现在有这个:
<p>Name</p><input type="text" id="name" onChange="document.getElementById('concat').value=this[0].value;" />
<p>Last name</p><input type="text" id="last_name" document.getElementById('txt').value=document.getElementById('txt').value + this.value;"/>
<p>Concat</p>
<input type="text" id="concat" />
但是第一个角色似乎没有起作用,我认为这个问题可能出现在[0] .value中;或者如何获得第一个聊天功能,还有其他任何功能吗?。
先谢谢。
答案 0 :(得分:0)
您在First-Name文本框中的[0]
上使用this
,但它应该是实际值:
onChange="document.getElementById('concat').value=this.value[0];"
或者,您可以明确并使用.substring()
来获取第一个字符:
onChange="document.getElementById('concat').value=this.value.substring(0, 1);"
这将获得输入的第一个字符。虽然写入/读取时间稍长,但它会传达您的确切目的。
注意:如果您的输入为空,当您使用undefined
时,您会在concat
文本框中插入this.value[0]
值,因为那里不是[0]
。使用.substring(0, 1)
将不会提供此类文本(如果这是一个问题)。
此外,您的Last-Name的第二个文本框有两个拼写错误(基于您的示例代码),因为它不包含onchange=
属性和它使用了id txt
代替concat
。此外,它不会尝试获取名字文本框的子字符串。
尝试将完整的代码块更新为以下内容:
<p>Name</p>
<input type="text" id="name" onchange="document.getElementById('concat').value=this.value.substring(0, 1);" />
<p>Last name</p>
<input type="text" id="last_name" onchange="document.getElementById('concat').value=document.getElementById('name').value.substring(0, 1) + this.value;"/>
<p>Concat</p>
<input type="text" id="concat" />
答案 1 :(得分:0)
this[0].value
如果你想要输入字段值的第一个字符,那不是你应该做的。
this
是输入字段。 this.value
是您想要第一个字符的字符串。 this.value[0]
将为你提供第一个字符串。
所以:
this.value[0]
答案 2 :(得分:0)
你犯了一些错误,这是你的更正代码
<p>Name</p><input type="text" id="name" onChange="document.getElementById('concat').value=this.value[0];" />
<p>Last name</p><input type="text" id="last_name" onChange="document.getElementById('concat').value=document.getElementById('name').value[0] + ' ' + this.value;"/>
<p>Concat</p>
<input type="text" id="concat" />
请与您自己的代码进行比较!