【发布时间】:2013-03-11 17:20:10
【问题描述】:
我慢慢地精神崩溃,我最后的神经消失了。 我在表格中有一个元素。如果我点击这个元素,我会得到一个文本框,如果我按下回车,文本框中的值将由 php 脚本处理。到目前为止,它工作得很好,但是...... 现在我需要,如果我在框外单击,最好说在另一个元素上,应该出现与按下回车按钮时相同的弹出窗口(你需要更改 blabla)。 我尝试使用 focusout、blur、onchange 等,但 IE 会立即触发弹出窗口,所以我没有机会在文本框中输入任何内容! 这里我的代码只适用于输入操作(输入按钮):
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 时触发,以便您可以输入一个值?因为现在它可以触发任何键。
-
我需要一个 Enter 上的事件,如果我点击其他元素或只是在外面
-
我明白了,但是您希望能够在文本框中输入一个值,对吗?
标签: jquery internet-explorer-8 textbox action onchange