在表单标记中调用时,Javascript函数不起作用

时间:2015-10-16 03:10:39

标签: javascript jquery html

这是我的HTML

<ul>
  <li>
    <img src="http://dummyimage.com/150x140/000/fff">
  </li>
  <li>
    <img src="http://dummyimage.com/150x190/000/fff">
  </li>
  <li>
    <img src="http://dummyimage.com/150x50/000/fff">
  </li>
</ul>

这是我的Javascript

<form> 
    <p>
        Enter the total stock value: <input id="total" type="number"onkeyup="calculate()">
    </p>
    <p>
        Enter the agreed commision rate:<input id="commision" type="number"> 
    </p>
    <p>
        <input id="calculate" type="number" readonly="readonly" placeholder="Result">
    </p> 
</form>

现在,如果我的表单没有包装在表单标签中,我的计算功能可以正常工作,但是当它在表单标签中时,我会在控制台中收到错误,说“未捕获的TypeError:计算不是函数”。 我尝试没有表单标签,但然后reset()函数不起作用..

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

这是因为你有一个具有id计算的元素,元素的id被复制为表单对象的属性(也被复制到窗口属性)所以在你的情况下calculate指的是dom元素在覆盖函数的表单范围内使用

<input id="txtcalculate" type="number" readonly="readonly" placeholder="Result">