2

我对 JavaScript 很陌生。我有一个变量和两个按钮,可以从该变量中加减 1,这很有效;但是我想做的是,当变量= 0减号按钮禁用时,变量不会低于 0。

<head>
    <script type="text/javascript">
        var a = 0;
        var add = function(valueToAdd) {
            a += valueToAdd;
            document.getElementById('Value').innerHTML = a;
        }
    </script>
</head>
<body>
    Value:<span id="Value">0</span>
    <button type="button" id = add onclick="javascript:add(1)">+</button>
    <button type="button" id = minus onclick="javascript:add(-1)">-</button>
</body>
4

5 回答 5

2

就像是:

a = Math.max(0, a+valueToAdd); // prevents a from dropping below 0
document.getElementById('minus').disabled = !a; // disables the minus button if a = 0
于 2013-07-15T18:15:26.493 回答
1
<head>
<script type="text/javascript">
    var a = 0;
    var add = function(valueToAdd){
        a += valueToAdd;
        document.getElementById('Value').innerHTML = a;

        if(a == 0) {
            document.getElementById('minus').disabled = true;
        } else {
            document.getElementById('minus').disabled = false;
        }
    }    

</script>

</head>

<body>
    Value:<span id="Value">0</span>
    <button type="button" id = add onclick="javascript:add(1)">+</button>
    <button type="button" id = minus onclick="javascript:add(-1)">-</button>


</body>
于 2013-07-15T18:13:13.780 回答
1

使用disabled属性:

var add = function(valueToAdd)
{
        document.getElementById('minus').disabled = (a+valueToAdd == 0);
        a += valueToAdd;
        document.getElementById('Value').innerHTML = a;
}
于 2013-07-15T18:13:34.397 回答
1

您可以使用disabled按钮元素的属性。

var a = 0;
var add = function(valueToAdd) {
    a += valueToAdd;
    document.getElementById('Value').innerHTML = a;

    // Add this line, it will disable when a is 0
    document.getElementById("minus").disabled = (a==0);
}

您还应该更新您的按钮代码。处理程序不是必需的javascript:,应引用您的 id 属性。

<button type="button" id="add" onclick="add(1)">+</button>
<button type="button" id="minus" onclick="add(-1)" disabled="disabled">-</button>

我还添加了disabled="disabled"减号按钮,因为初始值为 0。

于 2013-07-15T18:13:42.533 回答
1

首先:请在您的 id 周围加上引号,并删除内联 js:

<button type="button" id="add">+</button>
<button type="button" id="minus">-</button>

下一个:

为按钮点击编写一个事件处理程序:

var val = document.getElementById('Value');
var add = document.getElementById('add');
var subs = document.getElementById('minus');
var eventHandler = function(event) {
    var value = parseInt(val.innerText || val.innerHTML);
    if(this.id === 'add') { value++; }
    else if(this.id === 'minus') { value--;}
    val.innerHTML = value;
    if(value <= 0) {
        subs.disabled = true;
    }
    else {
        subs.disabled = false;
    }
};

然后将 eventHandler 挂接到按钮中:

add.onclick = eventHandler;
subs.onclick = eventHandler;

小提琴演示:http: //jsfiddle.net/maniator/wevG4/

于 2013-07-15T18:14:20.130 回答