Onclick / onchange取消彼此

时间:2012-12-13 22:55:09

标签: javascript forms function onclick onchange

所以我有一个表单,其中一个字段调用JavaScript函数来对其他一些字段内容进行一些更改。

像这样:

<form>
   <select onchange="montarconselho(distrito,'concelho');" id="distrito">

    other selects here...

   <input onclick="return submitform()" type="submit"id="inserir"/>
<form

现在我遇到的问题是,如果我离开那个onclick函数调用,select上的onchange函数就会停止工作。

如果我从按钮上删除了onclick调用,则select上的onchange开始工作!

每个人的功能都与彼此无关,所以我不知道发生了什么。

向任何回复的人致敬!

2 个答案:

答案 0 :(得分:0)

我有同样问题的轻微变化。 我的onchange是在文本输入上。我更改输入值但将焦点保留在该输入中。然后我使用鼠标单击一个按钮(或点击一个访问键),这将触发一个onclick。

在我的情况下,onchange运行,但onclick在调用处理程序之前永远不会触发或停止。

onchange启动了一个简短的ajax进程。

如果在单击按钮之前选中了输入,则两个事件都能正常工作。 就好像浏览器取消注册onclick事件监听器,直到onchange完成。

...

啊哈!写这个让我发现了狡猾的陷阱。我的onchange处理程序通过在运行时禁用所有表单输入来启动。咄。

这可能是解决问题的可能性很小,但它显示了您有时需要查看代码以查找错误的难度。您可以尝试整理一下代码:';'在submitform()之后,id =之前的空格,连续两个打开表单标签?

答案 1 :(得分:0)

验证您的代码是这样编写的:

HTML:

<form action="/echo/json/">
  <select onchange="montarconselho(distrito,'concelho');" id="distrito">
   <option value"0">0</option>
   <option value"1">1</option>
   <option value"2">2</option>
  </select>    



 <input onclick="return submitform()" type="submit" id="inserir"/>
</form>​

JS:

var montarconselho​ = function (a,b) {
    alert ('select change');
}

如果这不起作用,请尝试发布“真实”代码的片段