1

所以我有一个表单,它的一个字段调用一个 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 调用,则选择上的 onchange 开始工作!

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

给回复的人点赞!

4

2 回答 2

0

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

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

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

如果我在单击按钮之前退出输入,则两个事件都可以正常工作。就好像浏览器取消注册 onclick 事件侦听器,直到 onchange 完成。

……

啊哈!写这篇文章让我发现了这个狡猾的陷阱。我的 onchange 处理程序首先在运行时禁用所有表单输入。呃。

这成为您问题的答案的可能性似乎很小,但它表明您有时必须查看代码以发现错误是多么困难。你可以试着整理一下你的代码:';' 在 submitform() 之后,id= 之前的空格,连续两个打开的表单标签?

于 2012-12-26T11:40:33.903 回答
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');
}

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

于 2012-12-26T12:18:31.420 回答