javascript - how to generate error message in form if any of the fields left blank - Stack Overflow

<form onsubmit="chkform()"><table><tr><td>name<td><td><

     <form onsubmit="chkform()">
        <table>
        <tr><td>name</td><td><input type="text" id="uname"/></td></tr>
        <tr><td></td><td><div id="er1"></div></td></tr>
        <tr><td>address</td><td><input type="text" id="add"/></td></tr>
        <tr><td></td><td><div id="er2"></div></td></tr>
        </table>
        </form>
     <script>   
            function chkform()
            {


              if (document.getElementById("uname").value === "" ) 
              {

               document.getElementById("er1").innerHTML = "name cant be left blank"; 
               document.getElementById("er1").style.color = "red"; 
               document.getElementById("er1").style.display = "block"; 
              }
        }
</script>

i want to show error message in div, if any of the fields are left blank and this message should disappear when text box is clicked.

     <form onsubmit="chkform()">
        <table>
        <tr><td>name</td><td><input type="text" id="uname"/></td></tr>
        <tr><td></td><td><div id="er1"></div></td></tr>
        <tr><td>address</td><td><input type="text" id="add"/></td></tr>
        <tr><td></td><td><div id="er2"></div></td></tr>
        </table>
        </form>
     <script>   
            function chkform()
            {


              if (document.getElementById("uname").value === "" ) 
              {

               document.getElementById("er1").innerHTML = "name cant be left blank"; 
               document.getElementById("er1").style.color = "red"; 
               document.getElementById("er1").style.display = "block"; 
              }
        }
</script>

i want to show error message in div, if any of the fields are left blank and this message should disappear when text box is clicked.

Share Improve this question asked Sep 6, 2013 at 12:26 user2750762user2750762 4192 gold badges6 silver badges25 bronze badges 4
  • I don't see any submit button. – Harry Commented Sep 6, 2013 at 12:34
  • 1 Why the upvotes? I assume you don't want the message "name cant be left blank" to appear if the address field is empty? have you tried anything else? Also most devs haven't used tables for layout purposes since last century – andrew Commented Sep 6, 2013 at 12:42
  • @andrew "... since last century" is unnecessarily derisive hyperbole. – Dave Newton Commented Sep 6, 2013 at 12:54
  • You could use <td id="er1"></td></tr> instead of <td><div id="er2"></div></td> if it for error messages only. – rook Commented Sep 6, 2013 at 13:32
Add a ment  | 

5 Answers 5

Reset to default 0

Try adding both input boxes to an array, and looping through them to test whether they have values entered or not.

I've edited your code.

function chkform()
                {

    var inputs = [];
    inputs[0] = document.getElementById("uname");
    inputs[1] = document.getElementById("add");

    for( i =0; i < inputs.length; i++) {

                  if (inputs[i].value === "" ) 
                  {

                   document.getElementById("er1").innerHTML = "Please fill out all form inputs!"; 
                   document.getElementById("er1").style.color = "red"; 
                   document.getElementById("er1").style.display = "block"; 
                  }
            }
    }

Using the following will always allow you to add inputs without re-writing your validation function:

function chkform()
{
    var form = document.getElementsByTagName('form')[0];
    var inputs = form.getElementsByTagName('input');

    for(var i = 0; i < inputs.length; i++){
        if(inputs[i].value === '')
            // do your error
    }
}

Working fiddle

You should add else part to your if condition, that will take care of removing the error message when thge field has been filled.

else {
              document.getElementById("er1").innerHTML = ""; 
              document.getElementById("er1").style.display = "none";
              }

http://codepen.io/anon/pen/gxJid

I guess you need return to

<form onsubmit="return chkform()">

and

return false in your red alert message block

that works.

i.e.

<form onsubmit="return chkform()">
function chkform() {
  if (document.getElementById("uname").value === "") {
    . . .
    return false;
  }

  if (document.getElementById("car").value == "truck") {
    . . .
    return false;
  }
  . . .
}
 <form onsubmit="return false">
        <table>
        <tr><td>name</td><td><input type="text" id="uname"/></td></tr>
        <tr><td></td><td><div id="er1"></div></td></tr>
        <tr><td>address</td><td><input type="text" id="add"/></td></tr>
        <tr><td></td><td><div id="er2"></div></td></tr>
        </table>
        <input type="submit" onclick="chkform()"/>
        </form>
     <script>   
            function chkform()
            {


              if (document.getElementById("uname").value === "" ) 
              {

               document.getElementById("er1").innerHTML = "name cant be left blank"; 
               document.getElementById("er1").style.color = "red"; 
               document.getElementById("er1").style.display = "block"; 
              }
        }
</script>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744354367a4570158.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信