4

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

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

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

3 回答 3

3

你不能在数组上做一个 .val 。它应该是

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");
   }
}
于 2012-08-10T21:28:15.403 回答
2

您需要使用eachjquery 中的函数或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");
    }
}

​</p>

于 2012-08-10T21:26:25.363 回答
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();
    }
}
于 2013-07-30T06:17:14.630 回答