2012-07-08 86 views
1

可能重复:
How do I use jQuery's form.serialize but exclude empty fields从序列化字符串中删除空字段/输入

我需要从一个序列化字符串中删除不用的输入名字,如果他们不填充上形成。看到附加的JSFIddle。目前如果某人只填写Q1 & Q3,字符串的名称如下所示/static/url/to/file.php?Q1=Bob&Q2=&Q3=Dan&Q4=。因此,我希望在提交之前摆脱字符串中的Q2=Q4=名称。由于

JSFiddle - Serialize

+3

[如何使用jQuery的form.serialize但排除空字段(http://stackoverflow.com/questions/608730/how-do-i-use-jquerys-form-serialize-but-exclude-empty-fields) – Zbigniew 2012-07-08 10:13:23

+0

Thanks Des,出于某种原因,我无法完全在代码中工作?血腥的字符串不断消失,我一定在做错什么? – Tatters 2012-07-08 10:31:24

回答

1

试试这个:

$('#form1').find('input[type="text"]').not('#url').change(function(){ 
    var val = ""; 
    var url = '/static/url/to/file.php?'; 
    $('form input[type="text"]').not('#url').each(function(){ 
     if ($.trim(this.value).length > 0) { 
      val += ($(this).attr('name') + "=" + this.value + "&"); 
     } 
    }) 
    $('#url').val(url+val); 
}); 

$('#button').click(function(){ 
    window.location = $('#url').val(); 
}); 

DEMO

+0

谢谢...我只需要输入答案将自己附加到可见结果框中的URL上?结果框隐藏在提交按钮后面。对不起,我是一个jQuery新手。 – Tatters 2012-07-08 10:49:29

+0

@SamuelTattersfield欢迎您,尝试更新的答案。 – undefined 2012-07-08 11:07:26

+0

伟大的东西..多谢。一个问题,Demo似乎在结果框中包含两次url? – Tatters 2012-07-08 11:14:30