2015-09-05 93 views
0

我想提交一個使用jQuery提交功能的表單。當我提交沒有處理程序的表單時,一切正常。使用處理函數提交函數根本不提交。它也不會調用處理程序代碼。jquery提交處理程序不工作

這是行不通的代碼

jsfiddle.net/ge5575nj/2/

任何幫助,將不勝感激

回答

0

你可以讓另一個函數來處理提交事件

$(document).ready(function() { 

    $(document).on('keydown', '#squery', function(e) { 
     if (e.keyCode == 13) { 
      $('#searchform').submit() 
     } 
    }); 
    $('#searchform').on('submit',function(e){ 
     e.preventDefault(); 
     alert('Hi'); 
    }); 
}); 
0

在這裏你去。不需要使用event.preventDefault和一個處理程序。如果你想阻止你的處理程序提交返回false,並且如果你想繼續返回true。

$(document).ready(function() { 
 

 
    $(document).on('keydown', '#squery', function(e) { 
 

 
    if (e.keyCode == 13) { 
 

 
     /* with handler */ 
 
     $('#searchform').submit(function(event) { 
 
     alert("hi"); 
 
     return true; 
 
     }); 
 

 
     /* without handler */ 
 
     $('#searchform').submit() 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="POST" action="/search/" id="searchform"> 
 
    <input autocomplete="off" id="squery" type="text" name="q" class="form-control"> 
 
    <input name="qtype" id="searchType" hidden value="0"> 
 
</form>