0

我目前正在处理 Ajax 搜索建议输入,我已经完成了它,但我只想在您选择建议以自动提交表单时制作这个脚本。

这是我的Javascript:

<script>
function suggest(inputString){
    if(inputString.length == 0) {
        $('#suggestions').fadeOut();
    } else {
    $.ajax({
      url: "autosuggest.php",
      data: 'act=autoSuggestUser&queryString='+inputString,
      success: function(msg){
            if(msg.length >0) {
                $('#suggestions').fadeIn();
                $('#searchBoxSuggestions').html(msg);
                $('#country').removeClass('load');
            }
      }
    });
    }
}
    function fill(thisValue) {
    $('#keyword').val(thisValue);
    setTimeout("$('#suggestions').fadeOut();", 600);
}
function fillId(thisValue) {
    $('#country_id').val(thisValue);
    setTimeout("$('suggestionsBox').fadeOut();", 600);
}

</script>

这是我的 HTML 表单:

          <form method="get" action="search.php" autocomplete="on" name="form_search">
  <input type="text" size="25" value="" id="keyword" name="keyword" onkeyup="suggest(this.value);" onblur="fill();fillId();" class="" />
 <input type="hidden" name="country_id" id="country_id" value="" />
 <input type="submit" value="&nbsp;" id="searchbutton" />
 <div class="suggestionsBox" id="suggestions" style="display: none;"> 
 <div id="searchBoxSuggestions"> &nbsp; </div>
 </div>
          </form>

如果需要,还有 autosuggest.php:

<?php
if(isset($_REQUEST['act']) && $_REQUEST['act'] =='autoSuggestUser' && isset($_REQUEST['queryString'])) {
   $db_host = 'localhost';
   $db_user = 'root';
   $db_password = 'mypass';
   $db_name = 'mydb';

   $connect = mysql_connect($db_host, $db_user ,$db_password);
   $db = mysql_select_db($db_name,$connect);
   mysql_query("SET NAMES utf8");
   if($db){
    $string = '';
        $queryString = $_REQUEST['queryString'];
        $query = "SELECT * FROM videos WHERE title like '%" .$queryString . "%' and approved='yes' ORDER BY title LIMIT 10";
        $resource = mysql_query($query);

        if($resource && mysql_num_rows($resource) > 0) {
        $string.= '<ul>';
            while($result = mysql_fetch_array($resource)){
            $title= addslashes($result['title']);
            $indexer= addslashes($result['indexer']);
                $string.= '<li onClick="fillId(\''.$indexer.'\');fill(\''.$title.'\');"><b>'.$title.'</b></li>';
            }
        $string.= '</ul>';

        } else {
            $string.= '<li>No Record found</li>';
        }
        echo $string;       
        exit;

   }
   exit;
}

?>

现在使用此代码,当您在输入字段中键入名称keyword时,它会为您提供以下带有标题的建议。

现在,当您单击任何建议的标题时,它会将该标题放入您正在输入的输入字段中,并且当您按下提交按钮时,它会触发搜索。

当您单击将标题放入输入中的标题时,我如何使此脚本自动提交表单?

提前致谢!

4

2 回答 2

0

给你的searchBoxSuggestionsdiv 一个点击事件:

$("#searchBoxSuggestions").click(function() {
    $(this).closest("form").submit();
});
于 2013-11-11T20:50:02.907 回答
0

像这样修改你的fill函数:

function fill(thisValue) {
    $('#keyword').val(thisValue);
    setTimeout("$('#suggestions').fadeOut();", 600);
    $('form[name="form_search"]').submit();
}
于 2013-11-11T20:53:49.603 回答