-1

我有 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"  />

但是第一个字符似乎不起作用,我认为问题可能出在 this[0].value; 或者我如何获得第一个聊天者,还有其他功能可以做到吗?

谢谢,提前。

4

3 回答 3

0

您在 First-Name 文本框中使用[0]on this,但它应该是实际值:

onChange="document.getElementById('concat').value=this.value[0];"

或者,您可以明确并用于.substring()获取第一个字符:

onChange="document.getElementById('concat').value=this.value.substring(0, 1);"

这将获得输入的第一个字符。虽然写/读的时间有点长,但它会传达你的确切目的。

注意:如果您的输入为空,那么当您使用 as 时,您将在文本框中undefined插入一个值,好吧,没有. 使用不会给出这样的文本(如果它是一个问题)。concatthis.value[0][0].substring(0, 1)

此外,您的第二个姓氏文本框有两个拼写错误(基于您的示例代码),因为它不包含onchange=属性并且它使用 idtxt而不是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"  />
于 2013-01-02T19:37:52.950 回答
0
this[0].value

如果您想要输入字段值的第一个字符,那不是您应该做的。

this是输入字段。this.value是您想要的第一个字符的字符串。并且this.value[0]会给你字符串第一个字符。

所以:

this.value[0]
于 2013-01-02T19:37:57.227 回答
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"  />​​​​​​​​​​​​​​​​​​​​​​

请与您自己的代码进行比较!

于 2013-01-02T19:38:38.760 回答