我有一个Google Instant风格的jQuery搜索脚本,用于查询PHP文件,然后将结果解析为HTML div。如果没有活动的查询,则会自动选择文本框,但是当查询处于活动状态时,我希望不会自动选择该查询。我知道使用.blur();
函数可以做到这一点,但是当查询处于活动状态且页面已重新加载时,如何才能使用.blur();
函数?我希望每个人都能理解我的问题。
我的jQuery代码是:
$(document).ready(function () {
$('[id^=type_]').click(function () {
type = this.id.replace('type_', '');
$('[id^=type_]').removeClass('selected');
$('#type_' + type).addClass('selected');
return false;
});
$('#query').focus();
if (window.location.hash != "") {
var full = window.location.hash.replace('#', '');
var queryType = full.substring(0, full.indexOf("/"));
$('#type_' + queryType).click();
} else {
$('#type_search').click();
}
$('#query').keyup(function () {
var query = $(this).val();
var url = '/' + type + '/' + query + '/';
window.location.hash = '' + type + '/' + query + '/';
document.title = $(this).val() + ' - My Search Script';
$('#results').show();
if (query == '') {
window.location.hash = '';
document.title = 'My Search Script';
$('#results').hide();
}
$.ajax({
type: 'GET',
url: url,
dataType: 'html',
success: function (results) {
$('#results').html(results);
}
});
});
if (window.location.hash.indexOf('#' + type + '/') == 0) {
query = window.location.hash.replace('#' + type + '/', '').replace('/', '');
$('#query').val(decodeURIComponent(query)).keyup();
}
});
答案 0 :(得分:1)
<input type="text" style="display:none" id="invisible">
然后使用此代码
if ($('#query').val().length) {
$('#invisible').focus();
}
那应该让你到那里:)
答案 1 :(得分:0)
AHHA!我明白你的意思了。您可以使用JQuery中的.val()函数检查文本框中是否包含任何内容。假设'#query'是文本框,您可以将该部分更改为
if($('#query').val().length == 0)
$('#query').focus();