Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2013, 23:51
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Отправка одного поля без перезагрузки страницы
Доброй ночи.
Пытаюсь сделать отправку одного поля без перезагрузки страницы. Сталкиваюсь с проблемой - отдельно работает, а прикручиваю на сайт - перестает. Может быть конфликт с joomla?

Вот код:
<form id="form" method="post" action="javascript:void(0);" onsubmit="ajax()">
	<p>Ваш номер телефона</p>
	<p><input type="text" name="email" class="email" value="" /></p>
	<p><input type="submit" name="send" class="send" value="send"></p>
</form>
<div id="results"></div>


function ajax() { //Ajax отправка формы
	var msg = $("#form").serialize();
	$.ajax({
		type: "POST",
		url: "/form/send.php",
		data: msg,
		success: function(data) {
			$("#results").html(data);
		},
		error:  function(xhr, str){
			alert("Возникла ошибка!");
		}
	});
}

jQuery.fn.notExists = function() { //Проверка на существование элемента
	return $(this).length==0;
}

$(document).ready(function(){ //Валидация формы
	$(".send").validation(
		$(".email").validate({
			test: "blank digits",
			invalid: function(){
				if($(this).nextAll(".error").notExists()) {
					$(this).after('<div class="error">Введите корректный номер телефона</div>');
					$(this).nextAll(".error").delay(2000).fadeOut("slow");
					setTimeout(function () {
						$(".email").next(".error").remove();
					}, 2600);
				}
			},
			valid: function(){
				$(this).nextAll(".error").remove();
			}
		})
		
	);
});


if (!isset($_POST['email']) or empty($_POST['email'])) {
	$error2 = "Email?<br />";
} else $error2 = NULL;

if (empty($error1) and empty($error2) and empty($error3) and empty($error4)) {
	$subject = $_POST['subject'];
	$name    = $_POST['name'];
	$email   = $_POST['email'];
	$message = "Телефон: {$email}";
	if (mail("test@test.ru", $subject, $message)) {
		echo "Отправлено!";
	} else echo "Ошибка!";
} else {
	echo $error1.$error2.$error3.$error4;
}
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2013, 04:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Batyabest
Может быть конфликт с joomla?
Ага, некоторые движки прям не переносят javascript код )))) Аллергия наверное.

А по делу - в joomla используется js-фреймворк mootools, который также использует знак доллара в качестве имени своей функции, вот и конфликт.

Лучшее решение - отключить мутулз в джумле, да и вобще переписать скрипт на чистом js с использованием HTML5 валидации + webshims. Но это не для тебя дружок, не потянешь наверное. Твой удел - jQuery.noConflict()
Сообщение от Batyabest
<p>Ваш номер телефона</p>
    <p><input type="text" name="email" class="email" value="" /></p>
Логика? Не, не слышал...
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2013, 04:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

И да, проще будет найти какой-нибудь модуль уже готовый, ведь для джумлы тысячи их.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2013, 04:41
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,529

Плагин отключает Mootools https://github.com/Poznakomlus/joomla_options
и можно ведь
jQuery(document).ready(function(f){ 
//здесь весь ваш код где вместо $ вы и спользуете f или любую понравившуюся

})();
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2013, 05:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Poznakomlus, а почему f, а не $? Трудно представить что кому-то в голову вбредет использовать и mootools и jquery в одном плагине
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2013, 11:25
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Poznakomlus,
Спасибо, буду пробовать.
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2013, 11:30
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,529

Сообщение от danik.js Посмотреть сообщение
Poznakomlus, а почему f, а не $? Трудно представить что кому-то в голову вбредет использовать и mootools и jquery в одном плагине
f первая буква имени своего, точно не забудешь, да и ответил ты уже сам на свой вопрос
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных обработчику без перезагрузки dimjan4 AJAX и COMET 10 06.06.2009 21:53
Загрузка аватарки без перезагрузки страницы kez jQuery 35 22.05.2009 11:12
Подгрузка информера без перезагрузки страницы splean Общие вопросы Javascript 6 13.03.2009 15:31
Как сделать смену картинки, типа "до" и "после", без перезагрузки страницы? btstudio Events/DOM/Window 2 23.02.2009 20:43
Автообновление <div> без перезагрузки страницы Antihrist AJAX и COMET 14 28.07.2008 06:06