Не срабатывает проверка формы
написал скрипт проверки формы по нажатию кнопки
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() ;
};
Только беда - субмит происходит в любом случае. Не подскажете где не так? |
если ты не хочешь, чтобы форма отправлялась до положительной проверки, то в onsubmit формы нужно вписать return false;
и при положительном результате удалять этот onsubmit |
Так в моём коде вообще отправки не должно происходить если значение функции ложно
|
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>
|
Цитата:
... if ( validate_width() == false ) ... if ( validate_height() == false ) ... if (check_valid() != false) document.set_size.submit() ; |
В процессе преобразований и поиска лишних "запчастей" код мутировал в
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, время: 21:30. |