Jquery - 避免空输入

时间:2012-01-24 14:58:13

标签: jquery jquery-plugins jquery-selectors

我正在做一个多步骤表单(表单向导),我已将表单拆分为5个部分...所以mi first div是这样的:

<div class="data-1" style="display: block; ">
    <h3>Data</h3>
    <fieldset class="inputs">
    <ol>
      // 5 text inputs here
    </ol>
    </fieldset>
</div>

通过jquery我试图抓住每个div的5个输入(其他div也有复选框,单选按钮)这样做

 $(".data-1 :input").val();

为了知道每个div的输入值...但似乎我必须迭代div输入。

有没有办法阻止任何空输入?或者是否有插件可以执行此操作?

4 个答案:

答案 0 :(得分:0)

看看jQuery.Validate

http://docs.jquery.com/Plugins/Validation

  <script>
  $(document).ready(function(){
    $("#myForm").validate();
  });
  </script>

<form id="myForm" method="post">
   <p>
     <label for="cname">Name</label>
     <input id="cname" name="name" size="25" class="required" minlength="2" />
   </p>
   <p>
     <label for="curl">URL</label>
     <input id="curl" name="url" size="25"  class="url" value="" />
   </p>
   <p>
     <input class="submit" type="submit" value="Submit"/>
   </p>
 </form>

答案 1 :(得分:0)

这可能就像你正在寻找的......

$(".data-1 :input").each( function() {
   var val = $.trim($(this).val());
   if ( val != '' ) {
       // do stuff here...
   }
}); 

答案 2 :(得分:0)

代码

$(".data-1 :input").val();

...将为您提供 first “。data-1”div first 输入元素的值。它不会给你所有这些。

要获取所有这些值,您可以使用map(通常后跟get):

var values = $(".data-1 :input").map(function() {
    return $(this).val();
}).get();

这将为您提供一系列值。

上面创建的数组将包含空值。如果你想省略空值,只需从它们的迭代器函数返回undefined,它们就会被省略:

var values = $(".data-1 :input").map(function() {
    var val = $(this).val();
    return val ? val : undefined;
}).get();

答案 3 :(得分:-1)

$(".data-1 :input:not(:empty)").each(function()
{
// Iterating the not empty inputs
// $(this).val() contains the value of the current input
});