2015-01-09 4 views
0

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

<form id="myform" name="myform" runat="server" onsubmit="finalCheck();"> 

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

<button type="submit">submit</button> 

<input type="submit" value="submit"/> 

Метод finalCheck() всегда выполняется и не возвращать ложь. Но форма все равно.

Есть ли что-то еще, что мне нужно сделать, чтобы предотвратить отправку формы?

ответ

1

код в обработчик события должен вернуть значение из функции, которую она называет: функция обработчика

onsubmit="return finalCheck();" 
+0

Короткие и сладкие. Благодаря! – 4thSpace

0

события должна возвращать ложь. Эта функция onsubmit, а не finalCheck.

onsubmit="return finalCheck();" 

Если вы использовали современный код, вы могли бы назвать preventDefault на объекте события вместо этого.

<script> 
document.getElementById('myform').addEventListener('submit', finalCheck); 

function finalCheck(event) { 
    var myForm = this; 
    // do stuff 
    event.preventDefault(); 
} 
</script> 
2

написать HTML, как это:

<form id="myform" name="myform" runat="server" onsubmit="finalCheck(event);"> 

затем в ваш finalCheck(event) пишу это, на первой линии для хорошей практики:

event.preventDefault(); 

что остановит представить, и вы можете добавить еще код после функции preventDefault для обработки данных формы