IE10 事件处理按钮点击和 keyup
IE10 Event Handling for button ng-click and ng-keyup
在我的 HTML 文件中,我有一个文本框和一个按钮,它们没有任何关联。奇怪的是,当我在 文本框中输入文本并按下键盘上的 enter 时,它实际上运行 连接到按钮 ng 的函数-点击属性。 仅在 IE10 上发生, 但在 IE11 或任何其他浏览器上不会发生。
知道为什么会这样吗?
HTML
<h3>Group Fields <input id="groupfields" ng-keyup="fr_group_update($event)" ng-model="groupfields"></h3>
<div>
<button ng-click="purge_tasks()">Purge Selection</button> <br/>
</div>
控制器
$scope.fr_group_update = function(event){
if (event.keyCode === 13) {
alert("This should run");
}
};
$scope.purge_tasks = function(event){
alert("This runs instead");
};
Angular 表单曾经有一个有趣的行为:如果表单中只有一个按钮,它将表单提交设置为单击该按钮。当您在文本框中按 Enter 时,您会触发表单提交。
现在我不知道为什么这是 IE 版本特定的,但这是我能说的最接近的事情。也许 IE 10 即使没有表单也在做类似的事情。
如果您不需要也没有表单,请在按钮周围添加一个,或者尝试将类型明确设置为按钮,看看是否有帮助。
IE10 seems to handle buttons 没有 type
属性 就好像它们是提交按钮一样。因此,当您在页面上的任何输入上按回车键时,它会触发它找到的第一个按钮。
您可以通过将 type
属性显式设置为 button
:
来轻松解决此问题
<button type="button" ng-click="purge_tasks()">Purge Selection</button>
对于 IE clean/fast 解决方案(至少在我的情况下):
$event.stopPropagation();
HTML
<h3>Group Fields <input id="groupfields" ng-keyup="fr_group_update($event)" ng-model="groupfields"></h3>
<div>
<button ng-click="purge_tasks()">Purge Selection</button> <br/>
</div>
JavaScript
$scope.fr_group_update = function(event){
$event.stopPropagation();
if (event.keyCode === 13) {
alert("This should run");
}
};
$scope.purge_tasks = function(event){
alert("This runs instead");
};
在我的 HTML 文件中,我有一个文本框和一个按钮,它们没有任何关联。奇怪的是,当我在 文本框中输入文本并按下键盘上的 enter 时,它实际上运行 连接到按钮 ng 的函数-点击属性。 仅在 IE10 上发生, 但在 IE11 或任何其他浏览器上不会发生。
知道为什么会这样吗?
HTML
<h3>Group Fields <input id="groupfields" ng-keyup="fr_group_update($event)" ng-model="groupfields"></h3>
<div>
<button ng-click="purge_tasks()">Purge Selection</button> <br/>
</div>
控制器
$scope.fr_group_update = function(event){
if (event.keyCode === 13) {
alert("This should run");
}
};
$scope.purge_tasks = function(event){
alert("This runs instead");
};
Angular 表单曾经有一个有趣的行为:如果表单中只有一个按钮,它将表单提交设置为单击该按钮。当您在文本框中按 Enter 时,您会触发表单提交。
现在我不知道为什么这是 IE 版本特定的,但这是我能说的最接近的事情。也许 IE 10 即使没有表单也在做类似的事情。
如果您不需要也没有表单,请在按钮周围添加一个,或者尝试将类型明确设置为按钮,看看是否有帮助。
IE10 seems to handle buttons 没有 type
属性 就好像它们是提交按钮一样。因此,当您在页面上的任何输入上按回车键时,它会触发它找到的第一个按钮。
您可以通过将 type
属性显式设置为 button
:
<button type="button" ng-click="purge_tasks()">Purge Selection</button>
对于 IE clean/fast 解决方案(至少在我的情况下):
$event.stopPropagation();
HTML
<h3>Group Fields <input id="groupfields" ng-keyup="fr_group_update($event)" ng-model="groupfields"></h3>
<div>
<button ng-click="purge_tasks()">Purge Selection</button> <br/>
</div>
JavaScript
$scope.fr_group_update = function(event){
$event.stopPropagation();
if (event.keyCode === 13) {
alert("This should run");
}
};
$scope.purge_tasks = function(event){
alert("This runs instead");
};