【问题标题】:Change a single value of a textbox Javascript更改文本框Javascript的单个值
【发布时间】:2014-11-28 17:54:21
【问题描述】:

我想只改变一个输入的一个值,例如:在输入收入“xy”我想改变的只是“和”假设一个新的值是“p”,而“x”离开。最终结果应该是“xp”。

http://s2.subirimagenes.com/privadas/previo/thump_2265651input.png http://s2.subirimagenes.com/privadas/previo/thump_2265653input2.png

<input type="text"id="txtChar1" onkeypress="isNumberKey();">

function isNumberKey()
{
  var text = document.getElementById(txtChar1).value;

  if (text[1] >= 0)
  {
    text[1].write("p");
    text[1].value ="p";
    text.charAt(1).value = "p";
    text[1].innerHTML = "p";
    text[1] = "p";
  }
}

忘记澄清在这种情况下存在的选项是那些探测并且没有行走的选项。

【问题讨论】:

  • 你不应该用text[0]来做这一切吗?另外,你的错误是什么?

标签: javascript input modifier


【解决方案1】:

字符串是不可变的。你的描述不清楚,但我能说的最好的就是你想颠倒字符的顺序。

function isNumberKey()
{
  var el = document.getElementById("txtChar1");
  el.value = el.value.split("").reverse().join("");
}

.split("") 将字符串转换为其字符数组。然后.reverse() 反转这些数组成员的顺序,.join("") 将成员重新连接成一个字符串。


另一种方法是将this 传递给函数,因为这是要更新的函数。

<input type="text"id="txtChar1" onkeypress="isNumberKey(this);">

function isNumberKey(el)
{
  el.value = el.value.split("").reverse().join("");
}

我不会详细说明您的代码出了什么问题,因为我认为您只是将一堆任意代码拼凑在一起,希望它能正常工作。不用说,这几乎都是错误的。

【讨论】:

  • 我认为这不是 OP 想要的(不确定,因为问题很不清楚)。但是 +1 表示“字符串是不可变的”。
  • @Oriol:是的,我不确定。这个描述对我来说几乎没有意义。我认为至少摆脱所有错误代码是一个很好的第一步。 :-)
  • @FabricioNahuelRori: el.value = el.value.replace("y", "p");
  • 或者如果你需要替换几个,使用全局正则表达式。 el.value = el.value.replace(/y/g, "p");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
相关资源
最近更新 更多