2012-04-08 55 views
2

我想创建一个自动填充字段与jquerys着名的自动完成,并从MySQL数据库创建一个数组。它可以很好地工作,但是当进行选择时,输入字段值不会更新,因此我无法从表单中传递值。有人可以帮我吗?Jquery自动完成不更新输入值与选择

JQUERY:

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/themes/base/jquery-ui.css " type="text/css" media="all" /> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js " type="text/javascript"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js " type="text/javascript"></script> 
<script> 
$(document).ready(function() { 
    $("#keywords").autocomplete({ 
    source: keywordList 
    }); 
}); 

</script> 
<?php echo keywordArray(); ?> 

PHP:(创建数组列表自动完成)

<?php 
include 'admin/dbconn-dest.php'; 

function keywordArray() 
{ 
    $rsKeywords = mysql_query("SELECT Destination FROM Destinations WHERE Country = 'Mexico'"); 

    $output = '<script>'."\n"; 
    $output .= 'var keywordList = ['; 

    while($row_rsKeywords = mysql_fetch_assoc($rsKeywords)) 
    { 
    $output .= '"'.$row_rsKeywords['Destination'].'",'; 
    } 

    $output = substr($output,0,-1); //Get rid of the trailing comma 
    $output .= '];'."\n"; 
    $output .= '</script>'; 
    return $output; 
} 
?> 

HTML:

<input id="keywords" name="keywords" type="text" autocomplete="off" size="40" > 

任何帮助将不胜感激!

+0

的价值,你可以张贴[的jsfiddle(http://www.jsfiddle.net)证明了问题? – 2012-04-09 00:18:44

回答

4

使用SELECT event设置输入框

$("#keywords").autocomplete({ 
    source: keywordList, 
    select: function (event, ui) { 
         $("#keywords").val(ui.item.value);      
        } 
    }); 
+0

非常感谢! – lov2code 2012-04-09 00:39:24

1

这是一个已知问题。尝试使用Select First插件。这应该为你做的工作(至少它在我的情况下完美罚款)

希望有所帮助。