2012-09-14 114 views
-1

我有一個輸入自動完成的表單,我只發送動作,用戶在我的輸入中選擇一行。 我寫了這段代碼,但沒有提交。提交動作的jquery自動完成

<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> 

回答

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(); 
+0

也許可以解釋差異,以便OP瞭解原因?你如何區分自動完成和提交調用,以及爲什麼... – Ian

+0

@ianpgall:他沒有調用提交,他在select方法中附加了一個處理程序。 –

+0

我明白爲什麼,但我要說的在你的帖子中爲OP解釋一點細節(我知道你現在已經更新了一點) – Ian