Доброй ночи.
Пытаюсь сделать отправку одного поля без перезагрузки страницы. Сталкиваюсь с проблемой - отдельно работает, а прикручиваю на сайт - перестает. Может быть конфликт с 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;
}