JavaScript清除文本框输入无法正常运行

时间:2010-10-11 23:24:41

标签: javascript forms input

我知道这是一个非常简单的问题,但我无法弄清楚问题,这就是我问这个问题的原因,所以请不要重申这一点。

无论如何,我只是在这里做点什么,当我测试我的页面以查看事情的进展情况时,我意识到我的calculate()方法并没有像我想要的那样清除文本输入。 / p>

这是标记和脚本:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Quadratic Root Finder</title>
<script>
function calculate(){
var valuea = document.form1.variablea.value;
var valueb = document.form1.variableb.value;
var valuec = document.form1.variablec.value;
document.form1.variablea.value = "";
document.form1.variableb.value = "";
document.form1.variablec.value = "";
}
</script>
</head>

<body>
<form name="form1">
    a:<input name="variablea" value="" type="text">
    <br/>
    b:<input name="variableb" value="" type="text">
    <br/>
    c:<input name="variablec" value="" type="text">
    <br/>
    <input name="calculate" value="Calculate!" type="button" onClick="calculate()">
</form>
</body>
</html>

如果你看到任何东西,请告诉我。

4 个答案:

答案 0 :(得分:2)

您可能想尝试使用其他名称。我试着调用“计算”​​功能,但它继续给我一个错误,说“计算”不是一个函数。但是,当我调用函数“calculateQuad”并更改onClick事件以调用“calculateQuad”时,它可以工作。

答案 1 :(得分:1)

不太确定,但是如果您不想转到jQuery,那么您可以尝试:

function calculate() {
    var inputa = document.getElementById('inputa');
    inputa.value = '';
}

测试一下,在其中一个输入框上输入id“inputa”。我只知道如何通过原始Js中的id,name或tag获取元素。当然,您可以使用这些方法之一将代码扩展到您想要的表单元素。

答案 2 :(得分:1)

在onclick方法中,有一个对你点击的项目的引用。它的名称与您在项目上的名称相同,即“计算”。这导致“calculate”不是指函数,而是指输入标记。

要通过键入

来解决此问题
onclick = "window.calculate()"

或重命名输入标签或功能的名称。

答案 3 :(得分:0)

将输入按钮的名称更改为其他内容:

<input name="calcul" value="Calculate!" type="button" onClick="calculate()">

它有效。由于calculate函数直接驻留在全局对象下,我有一种奇怪的感觉,你的name属性以某种方式覆盖它。

把它扔到那里。我会更深入地了解为什么会发生这种情况。