2016-05-08 2 views
2

Я создал форму в HTML и использовал событие onblur для каждого поля, и он работает очень хорошо. Проблема в том, что когда я нажимаю кнопку отправки (которая отправляет данные сервлету), данные передаются, даже если они недействительны. Вот пример.Подтвердить все данные формы перед отправкой

<html> 
<head> 
<script> 
function check() 
{ 
    if(checkName()==true) 
     return true; 
    else{ 
     alert('vhvh'); 
     return false; 
    } 
} 
function checkName() 
{ 
    var uname=document.enq.Name.value; 
    var letters = /^[A-Za-z, ]+$/; 
    if(uname.match(letters)) 
    { 
     document.getElementById('Name').style.borderColor = "black"; 
     return true; 
    } 
    else 
    { 
     document.getElementById('Name').style.borderColor = "red"; 
     //alert('Username must have alphabet characters only'); 
     //uname.focus(); 
     return false; 
    } 
} 
</script> 
</head> 
<body> 
<form name="enq" method="post" action="Enquiry" onsubmit="check()"> 
<input class="textbox" id="Name"style="margin-top:10px;font-size:16px;" type="text" name="Name" placeholder="Full Name" onblur="checkName()" required /><br><br> 
<input class="button" type="submit"> 
</form> 
</body> 
</html> 

Как решить эту проблему?

ответ

0

Существует событие «onsubmit», которое позволяет вам управлять подачей формы. Используйте его для вызова своих функций проверки, и только затем решите, хотите ли вы предоставить пользователю форму. http://www.htmlcodetutorial.com/forms/_FORM_onSubmit.html

Вы должны использовать его следующим образом, если вы хотите, чтобы предотвратить отправку формы:

<form onsubmit="return check()"> 
+0

thanks @Ni. Теперь я создал функцию, которая проверяет правильность данных или нет, и работает очень хорошо. Но все же, как я могу ограничить его отправкой данных на сервлет. Вот код моего нового метода. функция проверки() { \t если (checkName() == верно && CheckNumber() == верно && ValidateEmail() == TRUE) \t \t оповещения ('истина'); \t else \t \t alert ('false'); } –

+0

@ParveenKumar, если функция возвращает false, форма не будет отправлена. –

+0

@ParveenKumar Я изменил ссылку в своем ответе на лучший сайт –

0

использование

<input class="button" type="button">

и поставить OnClick событие, подобное этому:

<input class="button" type="button" onclick="this.submit()">

так что вы можете работать с данными, прежде чем subimit его.

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