首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery验证表单元素

使用jQuery验证表单元素
EN

Stack Overflow用户
提问于 2020-05-30 21:24:12
回答 2查看 124关注 0票数 1

我正在尝试制作一个验证页面,当在文本框中输入文本时,我需要停止说“请填写表单”。我只需要在文本框为空时进行验证

代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="mailto:kyletab03@gmail.com" name="myForm" method="post" onsubmit="return validation();" enctype="text/plain">
  Name:
  <input type="text" name="name" id="name" /><br />
  Surname:
  <input type="text" name="surname" id="surname" /><br />
  Email:
  <input type="email" name="email" id="email" /><br />
  Message:
  <textarea name="Message" maxlength="3500"></textarea><br />
  <button id="submit" onclick="validation()">Submit</button>
</form>
<script>
  var name = $("#name").value;
  var surname = $("#surname").value;
  var email = $("#email").value;
  var comments = $("#comments").value;
  function validation() {
    if (name == "" || surname == "" || email == "" || comments == "") {
      document.myForm.name.setCustomValidity("Please fill out this field");
      document.myForm.surname.setCustomValidity("Please fill out this field");
      document.myForm.email.setCustomValidity("Please fill out this field");
      document.myForm.comments.setCustomValidity("Please fill out this field");
    } else {
      document.myForm.name.setCustomValidity();
      document.myForm.surname.setCustomValidity();
      document.myForm.email.setCustomValidity();
      document.myForm.comments.setCustomValidity();
    }
  }
</script>

EN

Stack Overflow用户

发布于 2020-05-30 23:11:02

您的代码显示了一个错误,因为在最后一行中,您使用的是"comments“而不是" message ",setCustomValidity()还接受一个包含错误消息的字符串或一个空字符串,为了使其正常工作,请考虑使用文档的方法来检索元素,此外,您还需要添加reportValidity(),因此代码应如下所示

代码语言:javascript
运行
复制
    if (name == "" || surname == "" || email == "" || comments == "") {
    name=document.getElementById('name')
    name.setCustomValidity("Please fill out this field");
    name.reportValidity()
}
else
    name.setCustomValidity('');
    name.reportValidity()

此外,还可以考虑使用helper函数来动态使用元素id。

更新:你可以使用这个,它会起作用的

代码语言:javascript
运行
复制
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="mailto:kyletab03@gmail.com" name="myForm" method="post" id='myform' enctype="text/plain">
  Name:
  <input type="text" name="name" id="name" required="required"/><br />
  Surname:
  <input type="text" name="surname" id="surname" required="required" /><br />
  Email:
  <input type="email" name="email" id="email" required="required" /><br />
  Message:
  <textarea name="Message" id="message" maxlength="3500" required="required"></textarea><br />
  <button onlclick='validation()'>Submit</button>
</form>
<script>

function validate(inputID)
{
 var input = document.getElementById(inputID);
 var validityState_object = input.validity;
 if (validityState_object.valueMissing)
 {
  input.setCustomValidity('Please fill out this field');
  input.reportValidity();
 }
 else
 {
  input.setCustomValidity('');
  input.reportValidity();
 }
}
   function validation() {
   var name= document.getElementById('name').value
   var surname=document.getElementById('surname').value
   var email=document.getElementById('email').value
   var message=document.getElementById('message').value  

      validate('name') 
      validate('surname') 
      validate('email') 
      validate('message') 

 if (name!=''&&surname!=''&&email!=''&&message!='') {       
          $('#myform').submit();

    }   
}

</script>
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62103081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档