-1

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

1 回答 1

1

这处理回车键:

$('#editbox').keydown(function(event) {
  if (event.which == 13) {
    confirmAction(...);
 }
}

这处理外部的点击:

$('#editbox').blur(function() {
    confirmAction(...);
}
于 2013-03-11T18:06:31.307 回答