Google Chrome表单onChange未触发

JoJ*_*oJo 9 html javascript google-chrome

如何获取Google Chrome(Windows 7 64位上的9.0.597.98)来触发表单的onchange?如果你玩下面的例子,没有任何东西可以安慰.它在Firefox 3.6.13中运行良好.

<form onchange="console.info('form changed')">
 <select>
  <option>uno</option>
  <option>dos</option>
 </select>
 <input type="radio" name="videoDevice" value="tres" checked="checked" />
 <input type="radio" name="videoDevice" value="cuatro" checked="checked" />
</form>
Run Code Online (Sandbox Code Playgroud)

ggu*_*erg 12

change通过JS 绑定事件似乎工作正常:

HTML

<form id="test">
 <select>
  <option>uno</option>
  <option>dos</option>
 </select>
 <input type="radio" name="videoDevice" value="tres" checked="checked" />
 <input type="radio" name="videoDevice" value="cuatro" checked="checked" />
</form>
Run Code Online (Sandbox Code Playgroud)

JS

document.getElementById('test').addEventListener('change', function() {
    alert('change fired');
}, false);
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲,将逻辑与表示分离是首选方法.但除此之外,您始终可以在HTML和JS中记录正在发生的事情.我倾向于把所有我的听众放在我的`$(document).ready()`的开头(或者你喜欢的框架中的等价物),以便清楚地看到什么是什么.此外,这种方法有效,并且`onchange ="..."`不是出于某种未知原因;) (5认同)
  • 同意JS跨越很多界限.但HTML没有 - 它只是演示文稿.添加逻辑(即使它只是一个函数调用)会超出其范围.显然,规则有例外,但是当你在一个只有**做HTML/CSS的设计师的团队中工作时,你可以更容易地保持HTML纯粹的表现形式. (2认同)