Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   ajax отправка формы (https://javascript.ru/forum/dom-window/56863-ajax-otpravka-formy.html)

Bananza 07.07.2015 15:07

ajax отправка формы
 
Всем привет!
Как сделать так чтобы форма отправлялась не по нажатию кнопки а при вводе данных в поля (Автоматический подсчёт).
P.S в примере jquery, но можно помочь и на JavaScript дальше разберусь.
Заранее спасибо:)
<form id="ajax-calculation-form" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
Количество человек:
<input type="text"  id="input1" name="number1" size="5" pattern="\d{1,5}" >
Количество дней:
<input type="text"  id="input2" name="number2" size="5" pattern="\d{1,5}" >
</form>

jQuery(document).ready(function() {
jQuery("#ajax-calculation-form").submit(function(){
var str = jQuery(this).serialize();
alert(str);
jQuery.ajax({
type: "POST",
/*url: "/wp-content/themes/clean_by_saxap/calc/calc.php",*/
url: "wp-content/themes/bridge/hostelcalc/calc.php",
data: str,
success: function(msg) {

if(msg == 'OK') {
/*result = '<div class="notification_ok">Ваше сообщение было отправлено</div>';*/
result = '';
$("#fields1").hide();
} else {
result = msg;
}
jQuery('#note1').html(result)/*.fadeIn().delay(3000).fadeOut("slow");*/

/*$(".btn_calc").on( "click", function() {*/

jQuery(".btn_calc").on( "click", function() {

jQuery.when( effect() ).done(function() {

});
});
}
});
return false;
});
});

kostyanet 07.07.2015 16:26

Надо повесить все то же самое на событие нажатия кнопок в сфокусированном поле ввода: keyup например.

Bananza 08.07.2015 11:56

Спасибо Вам большое!:victory:
jQuery(document).ready(function() {
jQuery("#ajax-calculation-form").keyup(function(){
var str = jQuery(this).serialize();
alert(str);
jQuery.ajax({
type: "POST",
/*url: "/wp-content/themes/clean_by_saxap/calc/calc.php",*/
url: "wp-content/themes/bridge/hostelcalc/calc.php",
data: str,
success: function(msg) {

if(msg == 'OK') {
/*result = '<div class="notification_ok">Ваше сообщение было отправлено</div>';*/
result = '';
$("#fields1").hide();
} else {
result = msg;
}
jQuery('#note1').html(result)/*.fadeIn().delay(3000).fadeOut("slow");*/

/*$(".btn_calc").on( "click", function() {*/

jQuery(".btn_calc").on( "click", function() {

jQuery.when( effect() ).done(function() {

});
});
}
});
return false;
});
});


Часовой пояс GMT +3, время: 06:22.