我慢慢地绝望,我最后的神经迷失了。我在表格中有一个元素。如果我点击这个元素,我会得到一个文本框,如果我按下回车,文本框中的值将由 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);
}
});