I have a input text and I apply it typeahead plugin for suggesting items, but when I press enter key on input text it submit form.
How can I prevent form submit using tw
The best way I've found to approach this is not to use a submit input. Use a button input instead and add some js to submit the form when it's clicked.
$('#my_submit_button').click(function(){
$(this).parents('form').submit();
});
I have same problem in my project using CodeIgniter and bootstrap here i found the solution and it works.
Just add onsubmit="return false;"
in the form, like this:
<form id="frmcrud" method="post" onsubmit="return false;">
The first answer didn't worked for me, maybe because of updating the typeahead plugin, but I did passed the problem by using the 'alternative' input created by typehead:
$(".twitter-typeahead > input").focus(function(){
//disable btn when focusing the input
$("#my_submit_button").prop('disabled', true);
}).blur(function(){
//enable btn when bluring the input
$("#my_submit_button").prop('disabled', false);
});
According to the documentation, you can set the option confirmKeys
to something else than return (13) :
$('input').tagsinput({
confirmKeys: [188, 32, 39],
});
However, a smarter way to go about this is to prevent sending the form on enter.
You can target that specific input by adding an ID to it and simply removing the keydown event for enter like so:
JS
$(document).ready(function() {
$('form input').keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});