我有一个包含使用jquery自动保存并使用ajax进行更新的表单的网站。这种形式包含不同的类型,如文本框和jQuery UI的日期选择器和timepicker输入元素...防止在所有浏览器的div内捕获鼠标和键盘事件
<div id="body">
<form id="line1">
<input id="1" type="text"/>
<input id="2" type="text" class="datepicker"/>
<input id="3" type="text" class="timepicker"/>
<select id="4" multiple="multiple>
<option> 1 </option>
</select>
</form>
<form id="line2">
<input id="1" type="text"/>
<input id="2" type="text" class="datepicker"/>
<input id="3" type="text" class="timepicker"/>
<select id="4" multiple="multiple">
<option> 1 </option>
</select>
</form>
</div>
现在,我需要重新加载过滤的目的为体内的含量。 现在可能发生的情况是内容被重新加载,而表单仍然接受输入并尝试保存它,但重新加载后它会“消失”,因为它未被纳入新视图。 使用指针事件添加叠加层:没有停止鼠标事件,但仍然可以键入。
我已经试过是:
function disableDiv(event)
{
event.stopimmediatepropagation()
}
...
this.element.find('.body')[0].addEventListener("keydown", disableDiv, true);
是Seam为火狐但不是Chrome或IE
工作是否有办法防止键盘事件捕捉到的形式为每个浏览器?
事实上,这是正常的投入工作。 JQuery-UI组件(如datepicker)允许更改禁用的输入字段。我在寻找的是一种通用的方式,不涉及ui扩展的所有专有禁用调用。恕我直言,防止事件捕获的外部股利是唯一的方法? – Steve
@Steve:*“像日期选择器jQuery的UI组件允许禁用输入字段的变化。” *没有他们不这样做。我添加了JQueryUI并设置了'。datepicker'作为日期选择器。设置禁用属性(这不是专有的 - 它是标准HTML的一部分)禁用datepicker *完全像你期望的*。即使捕获以禁用某些东西,也完全不是*如何去做。任何不尊重“disabled”属性的UI控件都会从根本上打破。 –