onkeyup而不是提交

时间:2011-07-20 16:08:10

标签: javascript jquery

我在这里使用JTube:JTube at github

我正在尝试在keyup上发出请求而不是提交。这是脚本:

 var qsParm = new Array();
    function qs() {
        var query = window.location.search.substring(1);
        var parms = query.split('&');
        for (var i=0; i<parms.length; i++) {
            var pos = parms[i].indexOf('=');
            if (pos > 0) {
                var key = parms[i].substring(0,pos);
                var val = parms[i].substring(pos+1);
                qsParm[key] = val;
            }
        }
    }

    $(function() {
        qs();

        if(qsParm['search'] == '' || qsParm['search'] == null || qsParm['search'] == undefined)
            qsParm['search'] = 'splinter cell';
        else
            qsParm['search'] = unescape(qsParm['search']);

        $('input[name=search]').val(qsParm['search']);

        $.jTube({
            request: 'search',
            requestValue: qsParm['search'],
            limit: 10,
            page: 1,
            success: function(videos) {
                $(videos).each(function() {
                    $('#example').append('<li><a href="'+this.link+'"><img src="'+this.thumbnail+'"><br>'+this.title+'</a> - '+this.length+'</li>');
                });
            },
            error: function(error) {
                $('#example').html(error);
            }
        });
    });

据我所知,函数是''qs''所以我试过了:

$("input").onkeyup(function(){
     qs();
     return false;         
 });

没用。我尝试了许多其他事情但没有成功。感谢帮助。

3 个答案:

答案 0 :(得分:4)

将其更改为:

$("input").keyup(function(){
     qs();
     return false;         
 });

onKeyup的jQuery版本称为keyup。通常onXXX是DOM事件,jQuery处理程序中没有on

答案 1 :(得分:1)

尝试这样的事情:

  $('#target').keyup(function() {
  alert('Handler for .keyup() called.');
});

答案 2 :(得分:1)

您需要调用“sendQS”函数(在您的示例中是匿名的)来实际发送数据。此外,jquery函数为keyup而非onkeyup

function sendQS() {
    qs();

    if(qsParm['search'] == '' || qsParm['search'] == null || qsParm['search'] == undefined)
        qsParm['search'] = 'splinter cell';
    else
...
}

$("input").keyup(function(e){
     sendQS();
     return false;         
 });