Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не срабатывает проверка формы (https://javascript.ru/forum/misc/58251-ne-srabatyvaet-proverka-formy.html)

Beegun 11.09.2015 22:01

Не срабатывает проверка формы
 
написал скрипт проверки формы по нажатию кнопки
function check_form() {
    var field_width = document.getElementById('width').value;
    var field_height = document.getElementById('height').value;
 
         
        function validate_width() {
             
            return !isNaN(parseFloat(field_width)) && isFinite (field_width);
              
        };
        function validate_height() {
             
            return !isNaN(parseFloat(field_height)) && isFinite (field_height);
             
        };
     
         
        function check_valid() {
        valid = true;
        if ( validate_width == false )
        {
                alert ( "Пожалуйста заполните поле 'Ширина'." );
                valid = false;
        };
        if (validate_height == false){
                alert ( "Пожалуйста заполните поле 'Длина'." );
                valid = false;
        };
            return valid;
        };
     
        if (check_valid != false) document.set_size.submit() ;
};



Только беда - субмит происходит в любом случае. Не подскажете где не так?

demoniqus 11.09.2015 23:07

если ты не хочешь, чтобы форма отправлялась до положительной проверки, то в onsubmit формы нужно вписать return false;
и при положительном результате удалять этот onsubmit

Beegun 12.09.2015 02:16

Так в моём коде вообще отправки не должно происходить если значение функции ложно

Lemme 12.09.2015 02:39

Beegun, намекну.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<form action="" name="myForm">
		<input type="text" name="myInput">
		<input type="submit">
	</form>
	<script>
		document.myForm.onsubmit = function(e) {
			// намекаю на это.
			//e.preventDefault();

			var error = false;

			if (!this.myInput.value) {
				error = true;
			}

			if (!error) {
				alert('this.submit()');
				//this.submit();
			}
			// или это
			return false;
		}
	</script>
</body>
</html>

sanmihan 12.09.2015 16:01

Цитата:

Сообщение от Beegun
Так в моём коде вообще отправки не должно происходить если значение функции ложно

Чтобы получить результаты выполнения функции ее вызвать надо
...
if ( validate_width() == false )
...
if ( validate_height() == false )
...
if (check_valid() != false) document.set_size.submit() ;

Beegun 12.09.2015 19:12

В процессе преобразований и поиска лишних "запчастей" код мутировал в
var check_valid = false;
function check_form() {
	alert('click')

		
	if (!isNaN(parseInt(check_width)) && isFinite(check_width) && !isNaN(parseInt(check_height)) && 		isFinite (check_height) != false) {check_valid = true};
		
							  
	
        if (check_valid != false) {document.set_size.submit()} 
		
};


но возникла проблема переменная получает пустое значение формы. создал новую тему


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