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

发布于 2024-10-21 16:44:48 字数 183 浏览 1 评论 0原文

我在执行以下操作的 javascript 时遇到问题:

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

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

插图图像

I'm having trouble in doing a javascript that will do the following:

Increase/decrease number inside textbox when image clicked.
setting a limit for that textbox (not below zero, not above x)

please know i have many text boxes in the same page, so how can this issue be fixed?

Image for illustration

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小糖芽 2024-10-28 16:44:48

您不需要(也不应该)为每个图像和输入字段设置 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;
}

You don't need to (and shouldn't) set ids for each and every image and input field. You will need to set name attributes for each input field though (so your server code can tell them apart - but not for JS).

If the "add" section for each row looks like:

<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>

use this 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;
}
挽心 2024-10-28 16:44:48

我认为这应该让您继续前进:

<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>

实时示例此处

I think this should get you going:

<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>

Live example here

不一样的天空 2024-10-28 16:44:48

递增

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

递减

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

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

To increment

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

To decrement

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

The || 0 will reset any value that doesn't parse as an integer to a default value, 0.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文