我希望我的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;
}
答案 0 :(得分:1)
是和否按钮都会添加到否框....为什么?
这是因为函数名称相同,第二个函数覆盖了第一个函数。
您不需要两次编写相同的功能。只需将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>
答案 1 :(得分:1)
事实是你使用的功能是incrementValue
的两倍,所以它将使用最后定义的一个:更新“No&#39;字段。
我更新了你的函数,以便它接收一个参数:按钮的id。所以你可以用它来增加正确的值。
function incrementValue(buttonId)
{
var value = parseInt(document.getElementById(buttonId).value, 10);
value = isNaN(value) ? 0 : value;
value++;
document.getElementById(buttonId).value = value;
}
&#13;
<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>
&#13;