Javascript 检测提交表单时未验证的必填字段的名称

Javascript 检测提交表单时未验证的必填字段的名称,javascript,jquery,html,forms,form-submit,Javascript,Jquery,Html,Forms,Form Submit,我用html5创建了一个表单,如下示例所示: <form action="/my/url/insert.php" method="POST"> <div class="row"> name <input name="name" required/> </div> <div class="row"> type <input name="type" requi

我用html5创建了一个表单,如下示例所示:

<form action="/my/url/insert.php" method="POST">
     <div class="row"> 
          name <input name="name" required/> 
     </div>
     <div class="row"> 
          type <input name="type" required/> 
     </div>
     <div class="row"> 
          year <input name="year" required/> 
     </div>

     ....

     <div class="row"> 
          album <input name="album" required/> 
     </div>
     <div class="row"> 
          <input type="submit" value="Save"/>
     </div>
</form>


<script>
    $('form').submit(function(){
         console.log('test');
    });
</script>
问题是: 我想检测提交和记录时未验证的必填字段的名称

例如:如果我在提交时没有填写输入相册,我会在需要一个字段的消息之前检测到它

有办法做到这一点吗


谢谢。

给你。。循环遍历每个input:required字段,并使用.attr获取其名称

$'form'.submitFunction{ e、 防止违约; $this.find'input:required'。每个函数{ log$this.attr'name'; } }; 名称 类型 年 .... 专辑 按所需的属性选择它们:

要自己做一个简单的必需检查,请创建一个简单的非空条件。但是对于这一点,您的表单需要novalidate类,否则将不会触发提交回调,并且不会发生任何事情

$(function() {
    $('form').submit(function(){
        $("input:required", $(this)).each(function() {
            if( $(this).val() != "" )
                console.log($(this).attr("name"));
        });
    });
});

这里的完整示例:

您也可以这样做:

<form action="/my/url/insert.php" method="POST" onSubmit="return myFunction()">
 <div class="row"> 
      <!--I am only giving id to one to show an exmaple you can give to differnt-->
      name <input name="name" id="some" required/> 
 </div>
 <div class="row"> 
      type <input name="type" required/> 
 </div>
 <div class="row"> 
      year <input name="year" required/> 
 </div>

 ....

 <div class="row"> 
      album <input name="album" required/> 
 </div>
 <div class="row"> 
      <input type="submit" value="Save"/>
 </div>
</form>
<script>
 function myFunction() {
 var x = document.getElementById('some').value;
   if (x == "" || x == null) {
   alert('sadsd');
   return false;
   //You can give anything else than alert
   }
 } 

使用:必填选择器或哪个必填字段?您有几个。@Utkanos:只有未验证的输入如果您不想表单验证,请在表单中使用novalidate属性。如果有任何未验证的输入,将永远不会触发提交。所以你的问题没用。给我们一些你想使用它的例子。否则,循环所有输入一个look witch不是空的。谢谢你的回答。但我只搜索没有验证的输入,将内部选择器设置为上下文,以防止元素出现在表单之外。$'input:required'、$this或$this.find'input:required'。@GuruprasadRao:我对其进行了测试,但在我填写所有必需的输入之前,从未调用submit。
<form action="/my/url/insert.php" method="POST" onSubmit="return myFunction()">
 <div class="row"> 
      <!--I am only giving id to one to show an exmaple you can give to differnt-->
      name <input name="name" id="some" required/> 
 </div>
 <div class="row"> 
      type <input name="type" required/> 
 </div>
 <div class="row"> 
      year <input name="year" required/> 
 </div>

 ....

 <div class="row"> 
      album <input name="album" required/> 
 </div>
 <div class="row"> 
      <input type="submit" value="Save"/>
 </div>
</form>
<script>
 function myFunction() {
 var x = document.getElementById('some').value;
   if (x == "" || x == null) {
   alert('sadsd');
   return false;
   //You can give anything else than alert
   }
 }