jQuery,多个输入和onBlur

时间:2010-02-05 23:14:04

标签: javascript jquery

所以我有2个输入。两者都是“自动完成”。我也有2个函数做同样的事情......每个输入调用一个不同的函数onBlur。问题是第二个选择第二个输入的“建议”时,它填充第一个。我该怎么做才能使第二个填充第二个?

可能有更好的方法,但我的jQuery / Javascript知识有限,而且我的时间不多了......谢谢!

代码:

function fillLocation(thisValue) {
    $('#location-box').val(thisValue);
    setTimeout("$('#suggestionsLocation').fadeOut('fast');", 200);
}

function fillTerms(thisValue) {
    $('#terms-box').val(thisValue);
    setTimeout("$('#suggestionsTerms').fadeOut('fast');", 200);
}


<input type="text" name="search_location" id="location-box" value="" onkeyup="suggestLocation(this.value);" onblur="fillLocation();" autocomplete="off" />

<input type="text" name="search_terms" id="terms-box" value="" onkeyup="suggestTerms(this.value);" onblur="fillTerms();" autocomplete="off" />

1 个答案:

答案 0 :(得分:2)

我想我假设您想要为具有类似功能的两个输入触发键盘和模糊事件,这将反过来影响相同的输入。

这将是一种方式。用javascript绑定事件,而不是HTML,并运行正确的代码

$('document').ready(function() {

    $('#location-box,#terms-box')
                    .bind('keyup', function() {
                           // do your keyup thing using $(this)
                           // to refer back to the input
                           //$('body').append($(this).attr('id') + ': keyup<br />');
                           var theValue = $(this).val();
                     }) 
                     .bind('blur', function() {
                           // do your blur thing using $(this)
                           // to refer back to the input
                           //$('body').append($(this).attr('id') + ': blur<br />');
                     })
    });


<input type="text" name="search_location" id="location-box" value="" autocomplete="off" />
<input type="text" name="search_terms" id="terms-box" value="" autocomplete="off" />

编辑:

取消注释$('body')行以查看正在运行的事件。

希望这就是你要找的东西。

编辑:添加到keyup事件的代码以检索值