Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
193
rated 0 times [  199] [ 6]  / answers: 1 / hits: 64167  / 9 Years ago, thu, april 23, 2015, 12:00:00

My purpose: If the user field and password field are blank, I want to stop form submitting.
This is my Code that I am trying:



<!DOCTYPE html>
<html>
<head>
<script>
function doit() {

var usr = document.getElementById('ur').value;
var psw = document.getElementById('pw').value;

if ((usr.trim() == '') && (psw.trim() == '')) {
alert(cannot Submit form);
return false;
}

}
</script>

</head>


<body>

<form action=post.php method=post onsubmit=doit()>
User:
<input type=text id=ur name=user>
<br>
<br> Pass:
<input type=password id=pw name=pass>
<br>
<br>
<button>Submit</button>
</form>


</body>
</html>


I am learning JavaScript. Will be helpful if you correct the code with a little explanation why it is not working.


More From » javascript

 Answers
5

return false is working fine, the way you are calling that function is wrong.



<form action=post.php method=post onsubmit=doit()> 


Just calls it, doesn't do anything with the return value



<form action=post.php method=post onsubmit=return doit()> 
^


Will stop the form post on a false returned value.



Read this note on MSDN although it is not IE specific




You can override this event by returning false in the event handler. Use this capability to validate data on the client side to prevent invalid data from being submitted to the server. If the event handler is called by the onsubmit attribute of the form object, the code must explicitly request the return value using the return function, and the event handler must provide an explicit return value for each possible code path in the event handler function.




Now onto another important point.



Your if condition will only stop form submission when both the fields are blank, whereas it should do that even if any one of those two fields is blank. That && (AND) should be an || (OR), and at the end of your functions if nothing returned false, return true then.


[#66941] Tuesday, April 21, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jackelyn

Total Points: 303
Total Questions: 103
Total Answers: 102

Location: Turks and Caicos Islands
Member since Sun, Mar 7, 2021
3 Years ago
jackelyn questions
Thu, Apr 8, 21, 00:00, 3 Years ago
Sun, Feb 28, 21, 00:00, 3 Years ago
Mon, May 25, 20, 00:00, 4 Years ago
Thu, Apr 30, 20, 00:00, 4 Years ago
;