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 twitter bootstrap typeahead plugin?
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 twitter bootstrap typeahead plugin?
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;
}
});
});
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.
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;">
trigger('input.typeahead')
) without a form submission (at least for now) so extended onsubmit to trigger the search event: onsubmit="console.log('trigger manual search of .js-typeahead-frmcrud'); $('.js-typeahead-frmcrud').trigger('input.typeahead'); return false;"
–
Twotone 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();
});
Use this
$('.bootstrap-tagsinput input').keydown(function( event ) {
if ( event.which == 13 ) {
$(this).blur();
$(this).focus();
return false;
}
})
© 2022 - 2024 — McMap. All rights reserved.
return false
. @See fuelyourcoding.com/jquery-events-stop-misusing-return-false – Precocious