我在WP插件中使用DevBridge的Autocomplete脚本。 它适用于除Chrome for Android以外的所有浏览器和所有设备:建议列表不会出现。 我认为我做错了,但我的代码适用于Chrome for Windows。
其他人偶然发现了类似的东西?
以下是代码:
<input type="text" name="job_search" id="job_search" class="job_search" tabindex="1" />
然后我的JS:
$("#job_search").keypress(function(e){
if (e.which !== 13) {
$("#job_search").autocomplete({
serviceUrl: this.href,
type: 'POST',
paramName: 'ac_query',
deferRequestBy: 300,
minChars: 3,
onSearchComplete: function(query, suggestions){
},
onSelect: function(selection){
$.post(this.self, {ac_selection:selection.data}).done(function(data){
data = JSON.parse(decodeURI(data));
$('#rate').prop('disabled', false);
$('#job_time').prop('disabled', false);
$('#add').prop('disabled', false);
$('#memo').prop('disabled', false);
jobNumber = data.pID;
jobDescription = data.description;
});
}
});
}
});
然后我的php:
if( $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['ac_query']) ){
$q1 = "SELECT * FROM ".$wpdb->prefix."ezts_projects
WHERE description LIKE '%".$_POST['ac_query']."%'
OR pID LIKE '%".$_POST['ac_query']."%' AND open = 1 LIMIT 5";
$result = $wpdb->get_results($q1);
$jsondata = '{ "query" : "'.$_POST['ac_query'].'",
"suggestions": [
';
for($j=0; $j < sizeof($result); $j++) {
$jsondata.= '{ "value" : "'.$result[$j]->pID.' - '
.$result[$j]->description
.'", "data" : "'.$result[$j]->pID.'" }';
if( $j < (sizeof($result) - 1) )$jsondata.=",
";
}
$jsondata.='] }';
print_r($jsondata);
die();
}
答案 0 :(得分:0)
删除按键事件就可以了。
$("#job_search").autocomplete({
serviceUrl: this.href,
type: 'POST',
paramName: 'ac_query',
deferRequestBy: 300,
minChars: 3,
onSearchComplete: function(query, suggestions){
},
onSelect: function(selection){
$.post(this.self, {ac_selection:selection.data}).done(function(data){
data = JSON.parse(decodeURI(data));
$('#rate').prop('disabled', false);
$('#job_time').prop('disabled', false);
$('#add').prop('disabled', false);
$('#memo').prop('disabled', false);
jobNumber = data.pID;
jobDescription = data.description;
});
}
});