jQuery:我如何同时验证复选框和输入文本?

时间:2012-11-25 06:49:44

标签: jquery html validation input checkbox

我有一个div而且我有2个复选框和2个输入文本但是我想要验证或检查所有输入是否为空以显示警告或错误并且至少填充一个输入(复选框或文本)因为我没有做两个验证:1个用于复选框,2个用于输入文本...是否有任何方法可以执行此操作?

HTML

<div id="t_disp">
    <p>
        <label for="7x24">7x24</label>
        <input id="7x24" name="7x24" type="checkbox"/>
    </p>
    <p>
        <label for="5x8">5x8</label>
        <input id="5x8" name="5x8" type="checkbox"/>
    </p>
    <p>
        <label for="especial">Especial</label>
        <input id="especial" name="especial" type="text"/>
    </p>
    <p>
        <label for="ticket">Ticket</label>
        <input id="ticket" name="ticket" type="text"/>
    </p>
</div>

提前致谢!!

3 个答案:

答案 0 :(得分:1)

获取/检查输入的数量:

var filled = $('#t_disp input').filter(function() { 
  return $(this).is('[type=checkbox]') ? this.checked : this.value;
}).length;

if ( filled ) {
   // at least one input is filled
} else {
   // all inputs are empty
}

答案 1 :(得分:0)

对于文本输入,您可以检查值。

$('#especial').val();
$('#ticket').val();

对于复选框,您可以检查它们是否已被选中。

$('#7x24').attr('checked'); // returns 'checked' if checked
$('#5x8').attr('checked');

然后你只需要把它们全部放在一个条件下。如果它们全部为空或未经检查,则表明您的错误。

P.S。根据我的经验id=从数字开始并不是那么好。

答案 2 :(得分:0)

您可以使用以下功能

function validate()
{

    var isFormValid = false;

        $("#t_disp input:text").each(function()
        {
      if ($.trim($(this).val()).length > 0)
           {      isFormValid = true;    }
        });

     var len =  $("#t_disp input:checked").length;
     if( len > 0 ) { isFormValid = true; }

        if (!isFormValid) 
        alert("Please fill atleast on one field.");

}