Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите доработать JS script (https://javascript.ru/forum/misc/39797-pomogite-dorabotat-js-script.html)

westnord 12.07.2013 13:22

Помогите доработать JS script
 
Привет всем! Я написал форму (html/css/JS). В форме есть проверка при нажатии на кнопку "отправить", если формы не заполнены, вылезает алерт с предупреждением.
...
$('#registerButton').bind('click',function(){
		if($('#formElem').data('errors')){
			alert('Пожалуйста, исправьте ошибки в форме!');
			return false;
		}


 });
});
...

Потом я формирую запрос вида Имя: Значение, при помощи такого кода:
$(document).ready(function(){
	function showValues() {
      var fields = $(":input").serializeArray();
      jQuery.each(fields, function(i, field){
	    var fieldValue = field.value;
	 	var fieldName = field.name;
		  var labelType = document.getElementById(fieldName).innerHTML;
		var str = labelType + " => " + fieldValue + "<br>";
      });
    }
	$(":checkbox, :radio").click(showValues);
    $("select, textarea, :text").change(showValues);
    showValues();
	

  });

Мне нужно передать переменную str в документ zakaz.php. При помощи JS, как это можно сделать?
Заранее спасибо!

animhotep 12.07.2013 14:08

$.post("zakaz.php", { formString: str } );

а похапе ловите пост переменную formString

westnord 12.07.2013 14:12

Цитата:

Сообщение от animhotep (Сообщение 261903)
$.post("zakaz.php", { formString: str } );

а похапе ловите пост переменную formString

Объясните пожалуйста, как можно объединить все эти 3 скрипта в один, чтобы при нажатии кнопки "отправить", скрипт сначала проверяет заполненность, если ошибок нет, формирует запрос сразу и отправляет его через эту функцию $.post("zakaz.php", { formString: str } );

animhotep 12.07.2013 14:17

$(document).ready(function(){
var str;
	function showValues() {
      var fields = $(":input").serializeArray();
      jQuery.each(fields, function(i, field){
	    var fieldValue = field.value;
	 	var fieldName = field.name;
		  var labelType = document.getElementById(fieldName).innerHTML;
		str = labelType + " => " + fieldValue + "<br>";
      });
    }
	$(":checkbox, :radio").click(showValues);
    $("select, textarea, :text").change(showValues);
    showValues();
	

$('#registerButton').bind('click',function(){
		if($('#formElem').data('errors')){
			alert('Пожалуйста, исправьте ошибки в форме!');
			return false;
		}else{

$.post("zakaz.php", { formString: str } );
alert('Всё пучком!');
return false;
}


 });
});



  });

westnord 12.07.2013 16:18

Цитата:

Сообщение от animhotep (Сообщение 261906)
$(document).ready(function(){
var str;
	function showValues() {
      var fields = $(":input").serializeArray();
      jQuery.each(fields, function(i, field){
	    var fieldValue = field.value;
	 	var fieldName = field.name;
		  var labelType = document.getElementById(fieldName).innerHTML;
		str = labelType + " => " + fieldValue + "<br>";
      });
    }
	$(":checkbox, :radio").click(showValues);
    $("select, textarea, :text").change(showValues);
    showValues();
	

$('#registerButton').bind('click',function(){
		if($('#formElem').data('errors')){
			alert('Пожалуйста, исправьте ошибки в форме!');
			return false;
		}else{

$.post("zakaz.php", { formString: str } );
alert('Всё пучком!');
return false;
}


 });
});



  });

Спасибо большое!

westnord 12.07.2013 16:46

Код сработал, сообщение отпарвилось, только в сообщении вышла самая последняя строчка. Как вы думаете, в чём может быть проблема?

animhotep 12.07.2013 18:01

по коду так и будет, вы для каждого поля перезаписываете str
а её нужно дописывать
str += labelType + " => " + fieldValue + "<br>";

westnord 13.07.2013 14:37

Цитата:

Сообщение от animhotep (Сообщение 261945)
по коду так и будет, вы для каждого поля перезаписываете str
а её нужно дописывать
str += labelType + " => " + fieldValue + "<br>";

Спасибо, огромное спасибо, вы мне очень помогли!

Brutto 14.07.2013 19:38

о, давно искал это!


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