-1

入力オートコンプリートが 1 つのフォームがあります。ユーザーが入力で 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

select メソッドを呼び出すのではなくsubmit、ハンドラーをフォームにアタッチします。これで試してください

$(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 に答える