单击时清除Javascript中的表单域

时间:2013-04-24 17:37:17

标签: javascript forms clear

提前抱歉提出新问题!我正在使用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>

“清除”功能只是不想工作。我哪里错了?

8 个答案:

答案 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)

您是否尝试this.?

然后尝试这段代码,

function clear(data) {
         document.getElementById("output").value=data; 
      }

答案 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'一样。