我想在输入[type=text]的变化时执行一个函数,在除IE外的所有浏览器中都可以正常工作。
这是一个示例:
$('input.switch').change(function(){
alert('ok now');
});
文本输入框看起来像这样:
<input class="switch" type="text" value="50000" />
不要忘记我有许多具有不同类的输入框!
您有解决方案吗?
我想在输入[type=text]的变化时执行一个函数,在除IE外的所有浏览器中都可以正常工作。
这是一个示例:
$('input.switch').change(function(){
alert('ok now');
});
文本输入框看起来像这样:
<input class="switch" type="text" value="50000" />
不要忘记我有许多具有不同类的输入框!
您有解决方案吗?
如果您希望在按下Enter键时激活事件,则注册此事件:
$('input.switch:first').keydown(function(e){
if (e.keyCode==13) { //Enter keycode
//Do you stuff
}
});
可能是因为文本输入框没有失去焦点,所以按下回车键无法触发更改。
祝好运!
更新:
最新版本的jQuery可以使用$('*:focus')
来获取当前焦点元素。我相信你应该添加支持IE的脚本。对于每个keydown事件,如果按键是回车键,则获取当前焦点输入框,使其失去焦点并触发更改:
$('body').keydown(function() {
if (e.keyCode==13) { //Enter keycode
$('input:focus').blur().change(); //The blur is to prevent change happen again
}
});
我不确定您是否能强制IE在按下回车键时以不同的方式触发更改。
希望这次能帮到您。
var isIE = !!document.documentMode;
if (isIE) {
$("body").on("keydown", "input[type='text']", function (e) {
// Ensure 'change' event is fired on enter in IE
if ((e.keyCode || e.which) === 13) {
$(this).blur();
}
});
}
if($(this).prop('checked'))
吗? - Felix Kling