Vaishali Modi
Vaishali Modi

Reputation: 654

.test() method in javascript is not working properly

In this code, the variable value of "ans" is always false whether I have entered value according to pattern or not. I cannot understand the reason.

if (document.getElementById("name") != null)
  var name = document.getElementById("name").value;
alert("name");
var patt = /[A-Za-z0-9]+@[a-z]+\.[a-z]+/;
var ans = patt.test(name);
alert("ans: " + ans);
<form>
  name:
  <input type="text" id="name" value="">
  <input type="submit" value="submit" onClick="validate();">
</form>

Upvotes: 0

Views: 1161

Answers (3)

Taher  Rahgooy
Taher Rahgooy

Reputation: 6696

You used function named validate in the submit button event, but did not define it. After defining the validate function, everything works fine.

function validate() {
  if (document.getElementById("name") != null)
    var name = document.getElementById("name").value;
  alert(name);
  var patt = /[A-Za-z0-9]+@[a-z]+\.[a-z]+/;
  var ans = patt.test(name);
  alert("ans: " + ans);
}
<form>
  name:
  <input type="text" id="name" value="">
  <input type="submit" value="submit" onClick="validate();">
</form>

Upvotes: 1

Pham Minh Tan
Pham Minh Tan

Reputation: 2096

You should move all your code into a defined function validate()

function validate(){
if (document.getElementById("name") != null)
  var name = document.getElementById("name").value;
alert("name");
var patt = /[A-Za-z0-9]+@[a-z]+\.[a-z]+/;
var ans = patt.test(name);
alert("ans: " + ans);
}

Upvotes: 1

urfusion
urfusion

Reputation: 5501

Try this

<form>
    name:
  <input type="text" id="name" value="">
  <input type="submit" value="submit" onClick="validate();">
</form>

<script>
function validate(){
if (document.getElementById("name") != null)
  var name = document.getElementById("name").value;
alert(name);
var patt = /[A-Za-z0-9]+@[a-z]+\.[a-z]+/;
var ans = patt.test(name);
alert("ans: " + ans);
}
</script>

Upvotes: 1

Related Questions