Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Запустить событие в случае успешной отправки формы (https://javascript.ru/forum/dom-window/52976-zapustit-sobytie-v-sluchae-uspeshnojj-otpravki-formy.html)

FranSe 15.01.2015 14:37

Запустить событие в случае успешной отправки формы
 
Ребята привет. Такое вот дело, есть скрипт(1), проверяет правильность введенной информации в форме, в случае ошибок не отправляет форму. Есть скрипт(2), при нажатии на кнопку отправить форму, выполняет появление модального окна. Задача состоит в том, чтобы выполнить скрипт 2, после успешного выполнения скрипта 1.
Т.е. если форма не отправляется по причине пустых полей формы или неправильного заполнения полей, тогда скрипт 2 не должен выполняться. Помогите решить, заранее благодарен)

скрипт 1:

function validate_form ()
{
var x=document.forms["form_v"]["you_email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
valid = true;
if (( document.form_v.you_name.value == "" ) || ( document.form_v.you_phone.value == "" ) || ( document.form_v.you_email.value == "" ))
{
alert ( "Пожалуйста заполните все поля." );
valid = false;
} else {
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Не правильный адрес e-mail");
return false;
}
return valid;
}
}

скрипт 2:

$(document).ready(function() {
$('#go').click( function(event){
$('#overlay').fadeIn(400,
function(){
$('#modal_form')
.css('display', 'block')
.animate({opacity: 1, top: '50%'}, 200);
});
});
/* Закрытие модального окна */
$('#modal_close, #overlay').click( function(){
$('#modal_form')
.animate({opacity: 0, top: '45%'}, 200,
function(){
$(this).css('display', 'none');
$('#overlay').fadeOut(400);
}
);
});
});

FranSe 15.01.2015 15:19

ну не ужели ни кто ничего не подскажет?:-?

FranSe 15.01.2015 16:25

Можно чуть подробней?

FranSe 15.01.2015 23:07

Цитата:

Сообщение от Rise (Сообщение 351545)
FranSe, а что не понятно?

Вот попытался реализовать, но не работает.((

$('#go').click( function(event) {
if (function validate_form ())
{
var x=document.forms["form_v"]["you_email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
valid = true;
if (( document.form_v.you_name.value == "" ) || ( document.form_v.you_phone.value == "" ) || ( document.form_v.you_email.value == "" ))
{
alert ( "Пожалуйста заполните все поля." );
valid = false;
} else {
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Не правильный адрес e-mail");
return false;
} else {

return valid;
}
if $(document).ready(function()
{
$('#overlay').fadeIn(400,
function(){
$('#modal_form')
.css('display', 'block')
.animate({opacity: 1, top: '50%'}, 200);
});
});
/* Закрытие модального окна */
$('#modal_close, #overlay').click( function(){
$('#modal_form')
.animate({opacity: 0, top: '45%'}, 200,
function(){
$(this).css('display', 'none');
$('#overlay').fadeOut(400);
}
);
});
);
}
}
}

BETEPAH 16.01.2015 00:19

Цитата:

Сообщение от FranSe
if (function validate_form ())

Вы понимаете, что написали здесь?

"Не правильный" написано неправильно ;)

FranSe 16.01.2015 08:04

Цитата:

Сообщение от BETEPAH (Сообщение 351624)
Вы понимаете, что написали здесь?

"Не правильный" написано неправильно ;)

задаю условие при котором запускается функция валидация формы. Вроде бы так.. А где ошибка не понимаю(

Царь Леонид 16.01.2015 09:36

Вы написали так: if (function validate_form ()), а надо так if (!validate_form()) return;

FranSe 16.01.2015 10:08

Цитата:

Сообщение от Царь Леонид (Сообщение 351639)
Вы написали так: if (function validate_form ()), а надо так if (!validate_form()) return;

Вот в таком скрипте return на месте находиться или нет? Да дело даже не в нем видимо, потому что скрипт даже не открывает окошко про пустое поле((

$('#go').click( function(event) {
if (!validate_form ())
{
var x=document.forms["form_v"]["you_email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
valid = true;
if (( document.form_v.you_name.value == "" ) || ( document.form_v.you_phone.value == "" ) || ( document.form_v.you_email.value == "" ))
{
alert ( "Пожалуйста заполните все поля." );
valid = false;
} else {
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Не правильный адрес e-mail");
return false;
}
return valid;
if $(document).ready(function()
$('#overlay').fadeIn(400,
function(){
$('#modal_form')
.css('display', 'block')
.animate({opacity: 1, top: '50%'}, 200);
});
$('#modal_close, #overlay').click( function(){ /* Закрытие модального окна */
$('#modal_form')
.animate({opacity: 0, top: '45%'}, 200,
function(){
$(this).css('display', 'none');
$('#overlay').fadeOut(400);
});
});
);
}
}
});

FranSe 17.01.2015 12:11

Наконец то я сделал) Не пришлось менять структуру скриптов. Реализовал путем совмещения скриптов одного в другой.) Спасибо тем кто подсказывал)


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