当用户按下输入或点击时如何触发相同的功能

时间:2009-07-21 15:08:19

标签: javascript jquery

我有自己的jquery编辑功能,看起来像这样

    $('.editRow').live('click', function() {
    var row = $(this).parent('td').parent('tr');
    row.find('.1u').slideUp('fast');
    row.find('.1p').slideUp('fast');
    row.find('.inputTxt').slideDown('fast');
    $(this).parent('td').empty().append('<a href=# class=cancel>Cancel</a> / <a href=# class=save>Save</a>');
});

$('.cancel').live('click', function () {
    var row = $(this).parent('td').parent('tr');
    row.find('.1u').slideDown('fast');
    row.find('.1p').slideDown('fast');
    row.find('.inputTxt').slideUp('fast');
    $(this).parent('td').empty().append('<a href=# class=editRow>Edit</a>');
});

$('.save').live('click', function () {
    var thisParam = $(this);
    var row = $(this).parent('td').parent('tr');
    var id = row.attr('id');
    var userid = row.find('#1ui').val();
    var pass = row.find('#1pi').val();

    $.ajax({
    type: 'post',
    url: 'filefetch_update.php',
    data: 'action=updateUser&pass=' + pass + '&id=' + id + '&userid=' + userid,

    success: function(response) {
        $('#response').fadeOut('500').empty().fadeIn('500').append(response);
        var row = thisParam.parent('td').parent('tr');
        row.find('.1u').text(userid).slideDown('fast');
        row.find('.1p').text(pass).slideDown('fast');
        row.find('.inputTxt').slideUp('fast');
        thisParam.parent('td').empty().append('<a href=# class=editRow>Edit</a>');
    }
    });
});     

现在,我希望在用户点击“保存”时以及在键盘上按下输入时运行保存功能。

4 个答案:

答案 0 :(得分:1)

这应该适合你:

$(document).keypress(function(e) {
    if (e.which == 13) {
        $('.save').click();
    }
)};

答案 1 :(得分:0)

不确定,但这可能有效

<input type="text" onkeypress="return runScript(event)" />
 function runScript(e) {
    if (e.keyCode == 13) {
        // do some thing like
            $('.save').click();
      }
}

答案 2 :(得分:0)

基本上,您需要做的就是和现在一样,但是将'keypress'事件绑定到文本字段并检查处理函数中的e.which。如果它是关键字13(我认为),那么请继续执行与“点击”相同的代码。

$('.your-text-field').live('keypress', func)

其中func检查密钥并执行保存代码。将点击处理程序分解为单独的函数是个好主意,这样keypress处理程序就可以调用它而不必复制源代码。

看看这里,应该有所帮助:jQuery keypress event

答案 3 :(得分:0)

$(document).keypress(function(e) {
    if (e.which == 13) {
        $('#go').click();
    }
});

这不能正常工作,因为在触发单击'go'元素后它会返回到同一个函数并隐藏结果,所以我在返回时修改了这段代码然后返回false,所以输出现在不会隐藏。 / p>

修改后的代码是:

$(document).keypress(function(e) {
    if (e.which == 13) {
        $('#go').focus();
        $('#go').click();
        return false;
    }
});