Jquery验证表单

时间:2012-08-10 21:21:03

标签: javascript jquery

我正在尝试在提交时验证我的表单,如果输入全部填写,则提交到register.php

我的问题是它只有在所有输入都是空白的情况下才有效 - 否则会出错 - 我只是在提交之前检查这些字段是否为空白

function submitform() {
    if ($('#name, #email, #user, #address, #phone').val().length === 0) {
        $(this).addClass('warning');
    } else {
        alert("form submitted");
    }
}

3 个答案:

答案 0 :(得分:3)

你不能在数组上执行.valve。它应该是

function submitform(){
   var warning = false;
   $('#name, #email, #user, #address, #phone').each(function() {
      $(this).val().length === 0){
         warning = true;
         return;
      }
   });
   if(warning) {
      $(this).addClass('warning');
   } else {
      alert("form submitted");
   }
}

答案 1 :(得分:2)

您需要使用jquery中的each函数或for循环检查每一个。

$('#name, #email, #user, #address, #phone').each(function(){
    if ($(this).val().length === 0){
        $(this).addClass('warning');
    } else {
     alert("form submitted");
   }
});

这是与for

相同的示例
var formElements = $('#name, #foo');

for (i = 0 ; i < formElements.length ; i++)
{
    if ( $(formElements[i]).val().length === 0 )
       $(this).addClass('warning');
    else {
       alert("form submitted");
    }
}

答案 2 :(得分:1)

function formSubmit() {
    var pass = true;
    jQuery.each( jQuery('#form :input'), function( key, value ) {
       if(!this.value && jQuery(this).attr('class :contains("required")')) {
         if (jQuery(this).siblings('.error').length === 0 && jQuery(this).type != 'submit') {
            jQuery(this).after('<label class="error"><span class="form-required">*</span> Required</label>');
         }
         pass = false;
       } else {
        jQuery(this).siblings('.error').remove();
      }
    });
    if (pass === true) {
        document.getElementById('form').submit();
    }
}