Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не получается сделать условие (https://javascript.ru/forum/jquery/19403-ne-poluchaetsya-sdelat-uslovie.html)

NeoMurderer 03.08.2011 12:35

Не получается сделать условие
 
Скажите как сделать так что бы при условии например return false; событие $("#submit").click(function() {} неактивировалось а есть возвращает true тогда всё ишло бы нормально

SkyLight 03.08.2011 12:48

Непонятно. Вы же сами дали ответ на свой вопрос. Если return true, то действие пойдет дальше, а если вернуть false, то обработка прекратится. Например, если в обработчике onsubmit вернуть false, то сабмита формы не будет и т.д.

NeoMurderer 03.08.2011 12:57

Вот смотрите у меня есть два кода(даю урывки)
Вот первый код
function validate(form_name)
   {
      \\Тут кож проверки валидности
       if (!reg.test(email.value)) {
      email.style.backgroundColor="red";
      text.innerText=str;
      email.focus();
      return false;
       }
       else {document.forms(form_name).submit();}
   }

И вот второй
$(function() {
    refresh_shoutbox();
    setInterval("refresh_shoutbox()", 15000);

    $("#submit").click(function() {
        var name    = $("#name").val();
		 var email    = $("#email").val();
        var message = $("#message").val();
		var ip = $("#ip").val();
        var data            = 'name='+ name +'&message='+ message + '&email='+ email+ '&ip='+ ip;

        $.ajax({
            type: "POST",
            url: "shoutbox/shout.php",
            data: data,
            success: function(html){
                $("#shout").slideToggle(500, function(){
                    $(this).html(html).slideToggle(500);
                    $("#message").val("");
                });
          }
        });    
        return false;
    });
});

Как сделать так что бы второй код выполнялся только тогда когда в первом нету return false;

SkyLight 03.08.2011 13:04

Если я правильно понял, то в первом куске идет валидация формы, а во втором - ее сабмит по кнопке. Только вот непонятно, в каком месте у вас происходит эта самая валидация? В коде я этого не увидел.

walik 03.08.2011 13:13

мб так
if (validate('my_form'))
   // Bla bla bla

NeoMurderer 03.08.2011 13:26

Короче вот весь код
function validate(form_name)
   {
       var form_=document.getElementById(form_name);
       var str='Неправильный адрес!!!';
       var text=document.getElementById("incorrect_mail");
       var email=document.forms[form_name].email;
       var reg= new RegExp("[0-9a-z_]+@[0-9a-z_^.]+\\.[a-z]{2,3}", 'i')
       if (!reg.test(email.value)) {
      email.style.backgroundColor="red";
      text.innerText=str;
      email.focus();
      return false;
       }
       else {return true;}
   }
$(function() {
    refresh_shoutbox();
    setInterval("refresh_shoutbox()", 15000);

    $("#submit").click(function() {
        var name    = $("#name").val();
		 var email    = $("#email").val();
        var message = $("#message").val();
		var ip = $("#ip").val();
        var data            = 'name='+ name +'&message='+ message + '&email='+ email+ '&ip='+ ip;

        $.ajax({
            type: "POST",
            url: "shoutbox/shout.php",
            data: data,
            success: function(html){
                $("#shout").slideToggle(500, function(){
                    $(this).html(html).slideToggle(500);
                    $("#message").val("");
                });
          }
        });    
        return false;
    });
	
});

walik 03.08.2011 13:29

$("#submit").click(function() {
   if (!validate('my_form'))
      return;


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