提前抱歉提出新问题!我正在使用Javascript制作一个计算器应用程序,并且很难获得“C”(清除)按钮来清除该字段。编辑:澄清一下,清除按钮不仅应该清除字段,还应该清除内存中的所有内容,以便我可以开始新的计算。 <input type="reset" value="C"/>
清除字段但保留我在内存中按下的最后一个按钮。
<script>
input = "";
function handleClick(data) {
input += data;
document.getElementById("output").value = input;
console.log(input);
}
function evaluateExpression(data) {
input = document.getElementById("output").value = eval(input);
}
function clear(data) {
input = data;
input = document.getElementById("output").reset();
console.log(input);
}
</script>
<div id="calculator">
<form>
<input type="text" id="output" />
</form>
<button onclick="handleClick(1)">1</button>
<button onclick="handleClick(2)">2</button>
<button onclick="handleClick(3)">3</button>
<button onclick="handleClick(4)">4</button>
<button onclick="handleClick(5)">5</button>
<button onclick="handleClick(6)">6</button>
<button onclick="handleClick(7)">7</button>
<button onclick="handleClick(8)">8</button>
<button onclick="handleClick(9)">9</button>
<button onclick="clear(0)">C</button>
<button onclick="handleClick('+')">+</button>
<button onclick="handleClick('-')">-</button>
<button onclick="handleClick('/')">/</button>
<button onclick="handleClick('*')">*</button>
<button onclick="evaluateExpression()">=</button>
</div>
“清除”功能只是不想工作。我哪里错了?
答案 0 :(得分:5)
在表单上重置。 link
document.getElementById("frm").reset();
或像这样设置文本框的值
document.getElementById('output').value = "";
答案 1 :(得分:2)
为什么不使用内置的reset
类型?
<input type="reset" value="C"/>
这必须在<form>
内。
答案 2 :(得分:1)
您能否只将输出文本设置为空白字符串?
(或)
如果你做一个计算器将它设置为0,那么更有可能吗?
document.getElementById("output").value = 0;
答案 3 :(得分:1)
以下是清除输入字段值
的示例<input id="entry" type="text"></input>
<button id="clear">Clear</button>
var entry = document.getElementById("entry"),
clear = document.getElementById("clear");
function clearfield() {
// EDIT: place code for clearing anything else that would be affected here
entry.value = "";
}
clear.addEventListener("click", clearfield, false);
on jsfiddle
以下是使用form.reset
的示例<form id="myForm">
<input id="entry" type="text"></input>
</form>
<button id="clear">Clear</button>
var clear = document.getElementById("clear"),
form = document.getElementById("myForm");
function clearfield() {
// EDIT: place code for clearing anything else that would be affected here
form.reset();
}
clear.addEventListener("click", clearfield, false);
on jsfiddle
此外,内联javascript被视为不良做法,您应该考虑使用addEventListener之类的方法。
即。 onclick="doit();"
为什么要使用addEventListener?
addEventListener是按指定注册事件侦听器的方法 在W3C DOM中。它的好处如下:
它允许为事件添加多个处理程序。这是 对DHTML库或Mozilla扩展特别有用 即使使用其他库/扩展,也需要正常工作。它 当听众得到时,可以让你对相位进行更精细的控制 激活(捕获与冒泡)它适用于任何DOM元素,而不是 只是HTML元素。
答案 4 :(得分:1)
答案 5 :(得分:1)
对于重置表单输入字段,这对我有用:
document.getElementById('elementId').value = "";
如果您尝试在非表单页面上重置元素,则对我有用:
document.getElementById('elementId').innerHTML = "";
答案 6 :(得分:0)
单击C按钮,清除输出值
document.getElementById('output').value = "";
答案 7 :(得分:0)
$(function(){
$("input").click(function(){
if(this.value == 0)
{
this.value='';
return;
}
else
{
return;
}
});
});
将“输入”插入#YourFieldId,并删除if inside,但保留this.value ='';
如果您可以使用jquery,这是清除点击字段的最佳方法......
你也可以总是有条件来检查输入然后清除,就像上面的代码清除输入字段中的'0'一样。