如何将Jquery函数附加到HTML输入

时间:2011-09-14 10:34:15

标签: jquery html function

我有这段代码:

$(function (){

    $('#searchText2').keyup(function(event){
        if (event.which >= 38 && event.which <= 40)
            return;
        var val = $(this).val();
        jQTubeUtil.suggest(val, function(response){
            var html = '';
            for(s in response.suggestions){
                var sug = response.suggestions[s];
                html += '<li class="uli2"><a href="#">'+sug+'</a></li>';
            }
            if (response.suggestions.length)
                $('#autocomplete').html(html).show();
            else 
                $('#autocomplete').hide();
        });
    });

});

我希望在输入为onblur或onfocus时使用HTML运行此代码:<input name="q" type="text" onblur="**WHAT DO I PUT HER TO RUN CODE**">

我确实给了这个函数一个名字,但是没有用。

3 个答案:

答案 0 :(得分:2)

只需绑定两个事件即可执行相同的功能:

$(function (){

    var myFunc = function(event){
        if (event.which >= 38 && event.which <= 40)
            return;
        var val = $(this).val();
        jQTubeUtil.suggest(val, function(response){
            var html = '';
            for(s in response.suggestions){
                var sug = response.suggestions[s];
                html += '<li class="uli2"><a href="#">'+sug+'</a></li>';
            }
            if (response.suggestions.length)
                $('#autocomplete').html(html).show();
            else 
                $('#autocomplete').hide();
        });
    }

    $('#searchText2').keyup(myFunc).blur(myFunc);

});

答案 1 :(得分:1)

试试这个:

在您的输入字段中添加ID,如下所示:

<input name="q" id='tempId' type="text" onblur="**WHAT DO I PUT HER TO RUN CODE**">

$('#tempId').focus(function() {  
    // write your code for onfocus here
}).blur(function() {
    // write your code for blur here
});

答案 2 :(得分:1)

您无需在HTML中附加事件处理程序。

您希望保持您的JS(jQuery)代码与HTML分离,为此您可以使用jQuery中可用的事件处理机制。

我看到@Tatu刚刚发布了一个代码示例,因为我正在写这个,所以我不会在这里添加相同的东西。

这里的重要部分是要知道您永远不需要使用HTML事件附件机制。它已经过时了,而且这些天很少有一个有效的地方。