2015-09-05 90 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>