使用javascript增加/减少文本字段值

时间:2011-03-11 21:37:21

标签: javascript image textfield

我在执行以下操作的javascript时遇到了麻烦:

单击图像时增加/减少文本框内的数字。 设置该文本框的限制(不低于零,不高于x)

请知道我在同一页面上有很多文本框,那么如何解决这个问题呢?

Image for illustration

3 个答案:

答案 0 :(得分:6)

您不需要(也不应该)为每个图像和输入字段设置ID。您需要为每个输入字段设置名称属性(因此您的服务器代码可以区分它们 - 但不是JS)。

如果每行的“添加”部分如下所示:

<div>
  <img src='minus.png' onclick="increment(this.parentNode.getElementsByTagName('input')[0]);" />
  <input type='text' name='product_1010101011' />
  <img src='plus.png' onclick="decrement(this.parentNode.getElementsByTagName('input')[0]);" />
</div>

使用此javascript:

function increment(myInput) {
  // use Mike Samuel's code here
  myInput.value = (+myInput.value + 1) || 0;
}
function decrement(myInput) {
  // use Mike Samuel's code here
  myInput.value = (myInput.value - 1) || 0;
}

答案 1 :(得分:3)

我认为这应该让你前进:

<form>
    <input type="button" id="minus" value="-" 
    onClick="textb.value = (textb.value-1)">
    <input type="text" id="textb" name="name" value="1" />
    <input type="button" value="+" 
    onClick="textb.value = (+textb.value+1)">
</form>

实例here

答案 2 :(得分:0)

增加

myInput.value = (+myInput.value + 1) || 0;

递减

myInput.value = (myInput.value - 1) || 0;

|| 0会将任何不解析为整数的值重置为默认值0。