我慢慢地失望了,最后的神经迷了路。 我有一个表中的元素。如果我点击这个元素,我会得到一个文本框,如果按下回车键,文本框中的值将被一个php脚本处理。到目前为止,它的工作完美,但... 现在我需要,如果我点击框外,最好说另一个元素,相同的弹出窗口应该出现(你需要改变blabla)作为行动时,我按下输入按钮。 我尝试着重点,模糊,onchange等,但IE浏览器立即触发弹出窗口,所以我只是没有机会在文本框中输入任何东西! 这里我的代码只用输入动作做工不错(回车键):IE8发生意外动作(javascript)(更改后的文本框动作不起作用)
function modify(value, item_ID, attr_NAME, obj_name){
$('.ajax').html($('.ajax_input').val());
$('.ajax').removeClass('ajax');
$(value).addClass('ajax');
$(value).html(
'<input id="editbox" size="' + $(value).text().length
+ '" type="text" value="' + $(value).text()
+ '" onkeydown="confirmAction(this.value, ' + item_id
+ ", '" + attr_name + "'" + ", '" + obj_name + "'" + ')">');
$('#editbox').focus();
}
得到它的工作:
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
$(value).addClass('ajax');
$(value).html(
'<input id="editbox"' + ' type="text" value="' + $(value).text() + '"/>');
$('#editbox').focus();
$('#editbox').keydown(function(event) {
if (event.which == 13) {
$(document).attr('helpAttr', false);
confirmAction(this.value, item_id, attr_name, obj_name);
}
});
$('#editbox').blur(
function() {
if ($(document).attr('helpAttr')
|| ($(document).attr('helpAttr') == undefined)) {
confirmAction(this.value, item_id, attr_name, obj_name);
} else {
$(document).attr('helpAttr', true);
}
});
您是否希望事件仅在按下ENTER时触发,以便输入值?因为现在它会触发任何键。 – zeroflagL 2013-03-11 17:53:06
我需要输入一个事件,如果我点击其他元素或仅仅在外部 – x4k3p 2013-03-11 17:55:05
我明白,但你想能够在文本框中输入一个值,是否正确? – zeroflagL 2013-03-11 17:57:15