首页 > 解决方案 > 如何使这些按钮正常工作

问题描述

我希望我的 HTML 按钮每次单击时都会添加一个,但由于某种我找不到的原因,按钮都会添加到框......为什么?

<h3>Did this Help?</h3>
<br>
<form>
   <input type="text" id="Yes" value="0"/>
   <input type="button" onclick="incrementValue()" value="Yes" />
</form>

<br>
<br>

<form>
   <input type="text" id="No" value="0"/>
   <input type="button" onclick="incrementValue()" value="No" />
</form>

<script>


function incrementValue(yes)
{
    var value = parseInt(document.getElementById('Yes').value, 10);
    value = isNaN(value) ? 0 : value;
    value++;
    document.getElementById('Yes').value = value;
}

function incrementValue(No)
{
    var value = parseInt(document.getElementById('No').value, 10);
    value = isNaN(value) ? 0 : value;
    value++;
    document.getElementById('No').value = value;
}

标签: javascript

解决方案


按钮都将添加到框.... 为什么?

这是因为函数名称相同,您的第二个函数覆盖了第一个函数。

您不需要两次编写相同的函数。只需通过以下方式 传递id给函数:button

function incrementValue(id){
    var value = parseInt(document.getElementById(id).value);
    value = isNaN(value) ? 0 : value;
    value++;
    document.getElementById(id).value = value;
}
<h3>Did this Help?</h3>
<br>
<form>
   <input type="text" id="Yes" value="0"/>
   <input type="button" onclick="incrementValue('Yes')" value="Yes" />
</form>

<br>
<br>

<form>
   <input type="text" id="No" value="0"/>
   <input type="button" onclick="incrementValue('No')" value="No" />
</form>


推荐阅读