javascript - 联系表单中的错误消息

标签 javascript html forms validation

我已经创建了一个联系人(4 个输入文本)表单,我希望如果用户不在任何输入中输入文本,则文本消息将出现在每个输入上方。

联系方式:

<form class="form-horizontal" method="post" action="#" name="form" onsubmit="return validation();">
                <fieldset>
          <div><h2   style="font-family: Myriad Pro;color:#7f8c8c">form</h2></div>

          <div class="form-group">
            <div class="col-sm-8">
             <input id="fname" name="name" type="text" placeholder="Όνομα" class="form-control">
         <div id="error1" style="color:#e8645a"></div>

          </div>
       </div>

        <div class="form-group">
        <div class="col-sm-8">
        <input id="lname" name="surname" type="text" placeholder="Επώνυμο" class="form-control">
        <div id="error2" style="color:#e8645a"></div>
           </div>
       </div>

       <div class="form-group">
        <div class="col-sm-8 ">
         <input id="email" name="email" type="email" placeholder="E-mail" class="form-control">
        <div id="error3" style="color:#e8645a"></div>
         </div>
       </div>

     <div class="form-group">
     <div class="col-sm-10 ">
     <textarea id="message" name="message" type="text" placeholder="Το σχόλιο σας.." columns="7" rows="7" class="form-control" style="background-color:#e5e6e6;" required=""></textarea>
     <div id="error4" style="color:#e8645a"></div>
      </div>
    </div>

    <div class="form-group">
     <div class="col-sm-3 text-center">
      <button type="submit" class="btn btn-primary btn-block" id="label" >SEND</button>
                        </div>

                    </div>

                </fieldset>
            </form>

我使用的脚本:

function validation(){
            if (document.form.name.value == "") {
                 document.getElementById('error1').innerHTML="*Error Msg1 ";    
            }else if (document.form.surname.value == "") {
                 document.getElementById('error2').innerHTML="*Error Msg2 ";    
            }else if (document.form.email.value == "") {
                 document.getElementById('error3').innerHTML="*Error Msg3 ";    
            }else if (document.form.message.value == "") {
                 document.getElementById('error4').innerHTML="*Error Msg4 ";
            }
            return false;
          }

我的问题是,例如,如果用户没有填写他的姓名(文本字段下方显示错误消息),但是如果他输入他的姓名,错误消息仍然显示。我该如何解决这个问题?

这里有一个例子:Fiddle

最佳答案

我建议您再次清除验证开始时的错误消息:

function validation(){
    document.getElementById('error1').innerHTML=""
    document.getElementById('error2').innerHTML=""
    document.getElementById('error3').innerHTML=""
    document.getElementById('error4').innerHTML=""

    //Your validation code below:
    ...

}

这样,每当输入验证时,所有错误消息都将被清除并再次评估。

您可能需要考虑将函数开头的标签存储在字段中,以便以后可以轻松访问它们。这也应该有助于提高可读性。例如:

function validation(){
var errorMessage1 = document.getElementById('error1');

//Access the label using your new variable:
errorMessage1.innerHTML = "Your value here"
...

关于javascript - 联系表单中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38142806/

相关文章:

javascript - NVD3.js 离散条形图

jquery - 使用 jQuery prop() 按名称添加 html 实体

html - rvest 和 NHL 统计数据的 Css 选择器问题

sql-server - 连续表格不允许编辑

javascript - JS 客户端表单验证 - 当 formValidation 函数通过 eventListener 对 "submit"事件返回 false 时,表单仍会提交

javascript - 当选择任何项目时,AngularJS 在 IE11 中显示列表中的第一项

javascript - 如何解码 yui TextAreaCellEditor 中的 htmlentities

javascript - 我如何获取动态创建的相同类的当前 div id

php - 避免刷新时上传图片

javascript - 插入一个 div 以使用 JavaScript 生成的 HTML 包裹其他 div