如果所有字段都没有完成,则jquery / javascript警报

我有一个表格,如果所有字段都没有完成,我想提醒大家。 我目前正在为必填字段使用jqueryvalidation脚本,但是我还需要它让人们知道在保存之前并不是所有字段都填写好了(它们不是必填字段,而只是让他们知道表单还没完呢)

表单字段是:

类型,状态,评级,cterms,companyid,公司,名称,姓氏,地址,郊区,城市,州,国家,pcode,电话,电子邮件和评论

如果有人可以帮我解决这个问题,那就太好了,我不介意它是用jquery还是javascript,只是警告不是所有字段都已完成,以及是否要继续保存。

干杯

李亚男

编辑:

这是表格:

Active:
     
Date:
Type: - Select Type - Customer Supplier
Status: - Select Status - Existing Potential
Rating: - Select Rating - Principal Secondary Minor
Credit Terms: - Select Credit Terms - COD 30 Days 60 Days 90 Days
Database: - Select Database - Cody Opal National Opal Collection
Company:
Address:
Address 2:
Suburb:
City:
State:
Postcode:
Country: - Select Country -
Primary Contact Name:
Primary Contact Surname:
Primary Contact Position:
Primary Contact Email:
Secondary Contact:
Phone - Business:
Phone - Direct:
Phone - Mobile:
Phone - Personal:
Fax:
Customer Comments:
Classifications:
OTHER

这是一个快速模型:

 $(document).ready(function() { $('form').submit(function() { var incomplete = $('form :input').filter(function() { return $(this).val() == ''; }); //if incomplete contains any elements, the form has not been filled if(incomplete.length) { alert('please fill out the form'); //to prevent submission of the form return false; } }); }); 
 function checkEmpty() { var empty = false; $("input").each(function() { empty = ($(this).val() == "") ? true : empty; }); if(empty) { var empty_ok = confirm("Are you Ok with leaving stuff empty?"); return empty_ok; } 

如果单击yes ,则确认返回true,如果单击yes ,则返回false。 将其作为要传递给submit()事件的值返回到主validation器。

以表格forms循环遍历每个输入元素:

 $(':input', formName).each(function() { // Check for completion of each input type }) 

(这就是为什么我在盲目回答之前要求加价)

我认为上面的任何解决方案都没有考虑到只有一个复选框必须实际被检查的逻辑,你不应该只检查它们中的每一个是否有值,或者它们默认都是一个。 这是我的版本,它依赖于封闭复选框的div ,有一个’checkboxgroup’类。

此外,未填写的元素将填充到“errorElements”数组中,您可以循环访问该数组并添加任何警告通知。

 $(function() { $('#adminForm').submit( function ( event ) { var errorElements = window.errorElements = [], valid = false; $(':input', this).not(':checkbox').each(function() { var val = $(this).val(); if ( !val.length ) { valid = false; errorElements.push(this); } }); $('.checkboxgroup', this).each(function() { var checkBoxes = $(':checkbox', this), oneChecked = false; checkBoxes.each(function() { if ( !oneChecked && !$(this).is(':checked') ) { valid = false; errorElements.push(this); } else { oneChecked = true; } }); }); if ( !errorElements.length ) { valid = true; } if ( !valid ) { event.preventDefault(); alert('please fill in all form fields.'); } else { alert('congratulations'); } }); }); 

Checkbox代码段:

  
OTHER

如果您有多个复选框组,则只有一个元素用.checkboxgroup类将它们括起来。