admin管理员组文章数量:1334174
I have a page which has 2 text areas and wanted to validate each text area if the characters being typed is more than max length upon clicking submit button. Problem with the code below when clicking submit it can only detect if textarea1 is more than max length but not the other textarea. What I wanted to do is it can determine which textarea is exceeding maxlength so users can correct it. Thanks in advance.
<html>
<head>
<script>
function testing()
{
var txtlength=document.getElementById("txt1").value.length;
if(txtlength>50)
{
alert("Max1 length reached ");
return false;
}
else
{
return true;
}
var txtlength1=document.getElementById("txt2").value.length;
if(txtlength1>50)
{
alert("Max2 length reached ");
return false;
}
else
{
return true;
}
}
</script>
</head>
<body>
<form action="test1.html" method="post" onsubmit="return testing();">
<textarea id="txt1"></textarea>
<textarea id="txt2"></textarea>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
I have a page which has 2 text areas and wanted to validate each text area if the characters being typed is more than max length upon clicking submit button. Problem with the code below when clicking submit it can only detect if textarea1 is more than max length but not the other textarea. What I wanted to do is it can determine which textarea is exceeding maxlength so users can correct it. Thanks in advance.
<html>
<head>
<script>
function testing()
{
var txtlength=document.getElementById("txt1").value.length;
if(txtlength>50)
{
alert("Max1 length reached ");
return false;
}
else
{
return true;
}
var txtlength1=document.getElementById("txt2").value.length;
if(txtlength1>50)
{
alert("Max2 length reached ");
return false;
}
else
{
return true;
}
}
</script>
</head>
<body>
<form action="test1.html" method="post" onsubmit="return testing();">
<textarea id="txt1"></textarea>
<textarea id="txt2"></textarea>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
Share
Improve this question
asked Feb 20, 2014 at 3:35
dimasdimas
2,5976 gold badges42 silver badges67 bronze badges
1
-
2
return
exits the function. The second block of code is never reached. – elclanrs Commented Feb 20, 2014 at 3:39
5 Answers
Reset to default 2the return true
statement should only be done once, at the end of the code.
the final code should looks something like this :
<script>
function testing()
{
var txtlength=document.getElementById("txt1").value.length;
if(txtlength>50)
{
alert("Max1 length reached ");
return false;
}
var txtlength1=document.getElementById("txt2").value.length;
if(txtlength1>50)
{
alert("Max2 length reached ");
return false;
}
return true;
}
</script>
function testing()
{
var txtlength=document.getElementById("txt1").value.length;
var txtlength1=document.getElementById("txt2").value.length;
if(txtlength>50)
{
alert("Max1 length reached ");
return false;
}
else if(txtlength1>50)
{
alert("Max2 length reached ");
return false;
}
return true;
}
Change your following function:
var txtlength=document.getElementById("txt1").value.length;
if(txtlength>50)
{
alert("Max1 length reached ");
return false;
}
else
{
return true;
}
var txtlength1=document.getElementById("txt2").value.length;
if(txtlength1>50)
{
alert("Max2 length reached ");
return false;
}
else
{
return true;
}
to:
var txtlength=document.getElementById("txt1").value.length;
if(txtlength>50)
{
alert("Max1 length reached ");
return false;
}
else
{
var txtlength1=document.getElementById("txt2").value.length;
if(txtlength1>50)
{
alert("Max2 length reached ");
return false;
}
else
{
return true;
}
}
Rather than hard–coding the form ID, pass a reference to the from from the listener:
<form ... onsubmit="return testing(this);">
In the function, loop over the form's controls and check them:
function testing(form) {
var control;
for (var i=0, iLen=form.elements.length; i<iLen; i++) {
control = form.elements[i];
if (control.tagName.toLowerCase() == 'textarea' && control.value.length > 50) {
alert(control.name + ' must be 50 characters or less');
return false;
}
}
}
}
Another way to do is the same as Raja Dani post, to place a new var called errormessage as empty string above txtlength,txtlength1, replace the alert with adding those messages in errormessage var, output alert if the errormessage length > 0 and false else true? :)
That is just not like the best solution but another way to solve it.
I am new here, tried to add posts on edit (you guys make it so plex) to only add a ment and not edit it cause I cannot ment other posts as I have low rep.
本文标签: htmlValidation for multiple textarea in javascriptStack Overflow
版权声明:本文标题:html - Validation for multiple textarea in javascript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742365094a2461132.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论