2014-10-08 7 views
0

У меня есть форма с полями. Я все еще изучаю Javascript. Когда мое сообщение отправлено, он запускает мой JS, который проверяет, были ли поля отправлены, и затем отображает ошибки, которые выполняются через innerhtml. Проблема в том, что это всего лишь отображение div в течение нескольких секунд, а затем завершение перезагрузки страницы, и div больше не отображается.подтверждение формы javascript - перезагрузка страницы

function checkradio() { 
chosen = "" 
len = document.cv.Radio1.length 
for (i = 0; (i<2); i++) { 
if (document.cv.Radio1[i].checked) { 
chosen = document.cv.Radio1[i].value 
} 
} 
if (chosen == "") { 
document.getElementById('error-1').innerHTML = "Please choose a type"; 
document.getElementById("Radio1").focus(); 
} 
} 

ответ

0

вам необходимо изменить поведение по умолчанию, если проверка не пройдена

вы наиболее вероятно проверка на представить н как:

$('form').submit(function(e){ 


    check = checkradio() // let your function return true or false 
    if(!check){ 
     e.preventDefault(); // add this to not submit the form 
    } 

}); 

поэтому форма не будет представить, если проверка не

Ваша проверенная функция проверки может выглядеть так:

function checkradio() { 
chosen = "" 
len = document.cv.Radio1.length 
for (i = 0; (i<2); i++) { 
if (document.cv.Radio1[i].checked) { 
chosen = document.cv.Radio1[i].value 
} 
} 
if (chosen == "") { 
document.getElementById('error-1').innerHTML = "Please choose a type"; 
document.getElementById("Radio1").focus(); 
return false; 
}else { 
return true; 
} 
} 
+1

Без jQuery: http://stackoverflow.com/questions/10575273/cross-browser-preventdefault-without-jquery – Shautieh

+0

Большое вам спасибо за то, что поставили меня в правильном направлении! После битвы и исследования, это то, что сработало:

а затем javascript: Wilest

+0

славный, рад помочь –

1

Вам нужно добавить

e.preventDefault();

для предотвращения поведения по умолчанию.

Следовательно, если валидация не удалась, то form не будет отправлен.

1

проверьте, используете ли вы обычный элемент ввода HTML или элемент сервера ASP.NET. Если ваш элемент сервера, например, страница, будет отправлен обратно на сервер (перезагружен) при нажатии кнопки. деталей, которые вы указали выше, недостаточно.

Смежные вопросы