ФорумПрограммированиеJavaScript → Сабмит и проверка данных

Сабмит и проверка данных

  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz Окт. 1, 2008, 3:32 п.п.

    Вобщем, делаю проверку данных формы аджаксом.

    <form action="/order" method="post" onSubmit="return false;"><input type="submit" value="Send" onClick="return full_validate_data();" />
    </form>


    function full_validate_data()
    {
    	
    	buy_email = document.getElementById('buy_email').value;
    	del_email = document.getElementById('del_email').value;
    	buy_phone = document.getElementById('buy_phone').value;
    	del_phone = document.getElementById('del_phone').value;
    	
    	JsHttpRequest.query(
    		"/JsHttpRequest/backend_full_validate_data.php",
    		{ "buy_email": buy_email, "buy_phone": buy_phone, "del_email": del_email, "del_phone": del_phone },
    		function(result) {
    			good = true;
    			document.getElementById('error').innerHTML = '';
    			if (!result["buy_email"]) {
    				document.getElementById('error').innerHTML = result["buy_email_text"] + '.<br />';
    				good = false;
    			} if (!result["buy_phone"]) {
    				document.getElementById('error').innerHTML += result["buy_phone_text"] + '.<br />';
    				good = false;
    			} if (!result["del_email"]) {
    				document.getElementById('error').innerHTML += result["del_email_text"] + '.<br />';
    				good = false;
    			} if (!result["del_phone"]) {
    				document.getElementById('error').innerHTML += result["del_phone_text"] + '.';
    				good = false;
    			} if (good) {
    				document.forms['orderform'].submit();
    			}
    		},
    		false
    	);
    	
    	return false;
    }


    Собственно, проблема в том, что форма не сабмитится. Причем, если перед document.forms['orderform'].submit(); написать alert(); то он срабатывает. Могу предположить, что при сабмите все равно идет return false; но если поставить эту функцию на onSubmit, происходит то же самое. Что делать?)
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 3:35 п.п., спустя 2 минуты 51 секунду

    ты JS функцию вешай на onSubmit!

    onsubmit="return(CheckForm());"
    все умрут, а я изумруд
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 3:35 п.п., спустя 22 секунды

    а в ней уже возвращай true или false в зависимости от заполняемости
    все умрут, а я изумруд
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz Окт. 1, 2008, 3:38 п.п., спустя 2 минуты 42 секунды

    Вешал я на onSubmit. И в зависимости пробовал возвращать. Вот так:

    function full_validate_data()
    {
    	
    	buy_email = document.getElementById('buy_email').value;
    	del_email = document.getElementById('del_email').value;
    	buy_phone = document.getElementById('buy_phone').value;
    	del_phone = document.getElementById('del_phone').value;
    	
    	good = false;
    	
    	JsHttpRequest.query(
    		"/JsHttpRequest/backend_full_validate_data.php",
    		{ "buy_email": buy_email, "buy_phone": buy_phone, "del_email": del_email, "del_phone": del_phone },
    		function(result) {
    			good = true;
    			document.getElementById('error').innerHTML = '';
    			if (!result["buy_email"]) {
    				document.getElementById('error').innerHTML = result["buy_email_text"] + '.<br />';
    				good = false;
    			} if (!result["buy_phone"]) {
    				document.getElementById('error').innerHTML += result["buy_phone_text"] + '.<br />';
    				good = false;
    			} if (!result["del_email"]) {
    				document.getElementById('error').innerHTML += result["del_email_text"] + '.<br />';
    				good = false;
    			} if (!result["del_phone"]) {
    				document.getElementById('error').innerHTML += result["del_phone_text"] + '.';
    				good = false;
    			} if (good) {
    				document.form['orderform'].submit();
    			}
    		},
    		false
    	);
    	
    	return good;
    }


    В итоге я добился, что сабмитится по второму сабмиту :) Где я дурак?)
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz Окт. 1, 2008, 3:39 п.п., спустя 59 секунд

    Тут же нету, блин, global :) И шо робыть?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 3:44 п.п., спустя 4 минуты 28 секунд

    sap,

    good = false;

    жжешь :)

    
    <form id="sapForm" action="/order" method="post" onSubmit="return false;">
    …
    <input type="submit" value="Send" onClick="full_validate_data(document.getElementById('sapForm'));" />
    </form>
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 3:47 п.п., спустя 3 минуты

    <form onSubmit="return(Check());">
    
    </form>
    

    
    function Check()
    {
      if (name.length=0) {
        alert('увага!');
        return(false);
      }
      return(true);
    }
    
    все умрут, а я изумруд
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz Окт. 1, 2008, 3:55 п.п., спустя 8 минут 57 секунд

    adw0rd, все равно только по второму клику сабмитится :(

    md5, так-то оно да, только вот проверка идет в function(result), и оттуда хрен ретурн сделаешь.
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz Окт. 1, 2008, 3:57 п.п., спустя 1 минуту 34 секунды

    Короче, я лучше щас эти регулярки на джаваскрипте нафигачу и сделаю без аджакса)
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 4:03 п.п., спустя 6 минут 5 секунд

    ага, все равно на сервере перепроверять..
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 4:45 п.п., спустя 41 минуту 53 секунды

    alert('увага!');

    чем те так слово понравилось?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 4:57 п.п., спустя 11 минут 44 секунды


    alert('увага!');

    чем те так слово понравилось?
    да мне впринципе все равно можно и так:

    увага('alert!');
    :))
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 4:58 п.п., спустя 1 минуту 30 секунд

    CTAPbIu_MABP,
    http://pyha.ru/forum/u
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz Окт. 1, 2008, 5:29 п.п., спустя 30 минут 27 секунд

    adw0rd, буээээ
  • OleKsa

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz Авг. 18, 2012, 11:10 п.п., спустя 1417 дней 5 часов 40 минут

    Счастье, как здоровье: когда его не замечаешь, значит, оно есть.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!