从表单中删除空输入元素

我有一个简单的表单,继续创建codeigniter的所有表单和validation要求。 我想要做的是在序列化之前过滤掉任何空输入,这样我就不会创建表单输入和表单validation集规则。 我不知道如何解决这个问题。 我在Jquery中有警报的地方是我要删除任何空输入的地方(再次在序列化之前)。 此时我正在使用的不会检测空表单字段。 没有检测代码,整个系统工作正常。 这是我正在使用的

Field Name


$(function(){ $('#send').click(function(){ --------------------------------------- $(":input").each(function() { if($(this).val() === "") alert("Empty Fields!!"); //using alert just to see if empty fields are detected. return false; }); ----------------------------------------- var data = $('#form').serialize(); $.ajax({ type: "POST", data: data, url: "Form.php", success: function(msg){ if(msg){ $('#display').html(msg).show(); }else{ $('#display').text("

nothing came back

"); } } }); return false; }); });

我只是想避免打印出空的表单字段

 




感谢您的时间

这将删除值为length 0的所有文本字段:

 $('#send').click(function(){ $(':input[type="text"]').filter(function(e){ if (this.value.length===0){ return true; } }).remove(); }); 

示例: http : //jsfiddle.net/niklasvh/ZBSyX/

您应该使用\ s作为搜索查询使用正则表达式。 所以/ ^(\ s)* $ /作为正则表达式,只是确保输入与此不匹配。

抱歉,我不熟悉Jquery,或者我会完全编写代码。

  $('#send').click(function(){ //--------------------------------------- $(":input").each(function() { if($(this).val() === "") alert("Empty Fields!!"); //using alert just to see if empty fields are detected. return false; }); 

你没有收到错误吗? 第一个lambda的范围未关闭。

使用Firebug突出显示您可能会收到的错误并发布这些错误。

隐藏未分配value元素:

 $('input:text[value=""]').hide(); 

但是,当然,如果在html中提供了value="x"属性,这将导致元素被显示。