-1

我有一个带有一个输入自动完成的表单,我只会发送操作,用户在我的输入中选择一行。我已经写了这段代码,但没有工作提交。

<script type="text/javascript">
 $(document).ready(function(){
     $("#q").autocomplete({
    source: "tagSearch.php",
    minLength: 2,
    delay: 0,
    select: function(event, ui) { 
            $("#q").val(ui.item.label);

    $('#my-form').submit(function() {
        if($("#q").val() == "" || $("#q").val() == "no result" ){
           alert("Message Cannot be empty");
           return false;
        }
            return true;
    });

    }
  });                   
});     


<form id="my-form" action="search.php" method="GET">
    <input name="q" id="q" />
    <input type="submit" name="GO" value="GO" />        
</form>
4

1 回答 1

3

您没有调用submit您的 select 方法,而是将处理程序附加到表单。试试这个

$(document).ready(function(){
    $("#q").autocomplete({
        source: "tagSearch.php",
        minLength: 2,
        delay: 0,
        select: function(event, ui) { 
            $("#q").val(ui.item.label);
            $('#my-form').submit();
    });

    $('#my-form').submit(function() {
        if($("#q").val() == "" || $("#q").val() == "Nessun risultato" ){
           alert("Message Cannot be empty");
           return false;
        }
        return true;
    });
});   

我将提交处理程序移到了 select 方法之外。现在,在 select 中,只需调用 submit 并执行正确的处理程序

$('#my-form').submit();
于 2012-09-14T13:18:58.297 回答