表单字段数量向上/向下按钮,不允许负数

Form field quantity up/down buttons, don't allow negative numbers?

本文关键字:按钮 不允许 字段 表单      更新时间:2023-09-26

http://jsfiddle.net/KYDPd

有没有办法使最小数字为 0,并且允许用户在向下单击时低于 0?

<form>
  <input type="text" name="name" value="0" />
  <input type="button" value="up" onclick="this.form.name.value++;" >
  <input type="button" value="down" onclick="this.form.name.value--;">
</form>

如果不需要单独的按钮,并且HTML5是一个选项,你可以使用这个:

<form>
    <input type="number" min="0" name="name" value="0" />
</form>

这应该可以解决问题。 在允许每个操作之前检查值是多少。 还向文本输入添加了 onchange,以强制执行您的最低 0 要求。 同意其他答案,这应该在一个函数中。

http://jsfiddle.net/xqV6V/1/

<form>
    <input type="text" name="name" value="0" onchange="if(this.value<0){this.value=0;}" />
    <input type="button" value="up" onclick="if(this.form.name.value>=0){this.form.name.value++;}" >
    <input type="button" value="down" onclick="if(this.form.name.value>0){this.form.name.value--};">
</form>

你可能应该把这个JavaScript放在一个函数中。

<form>
    <input type="text" name="name" value="0" />
    <input type="button" value="up" onclick="this.form.name.value++;" >
    <input type="button" value="down" onclick="if(this.form.name.value>0)this.form.name.value--;">
</form>

带有功能的附加答案

<script>
function ud_find_text(self) {
    var children = self.parentNode.getElementsByTagName('input');
    for (var i = 0; i < children.length; i++) {
        if (children[i].getAttribute('type') == 'text') {
            return children[i];
        }
    }
}
function ud_inc(self) {
    var text = ud_find_text(self);
    text.value++;
}
function ud_dec(self) {
    var text = ud_find_text(self);
    if (text.value > 0) text.value--;
}
</script>
<form>
  <input type="text" name="name" value="0" />
  <input type="button" value="up" onclick="ud_inc(this)" >
  <input type="button" value="down" onclick="ud_dec(this)">
</form>