跳过Jquery序列化中的隐藏输入

跳过Jquery序列化中的隐藏输入,jquery,Jquery,我的表单输入为隐藏和可见,如下所示。在本例中,我只想序列化未隐藏的name='country' <form id="finalform"> <input type='hidden' name='sid' value='901271316' /> <input type='hidden' name='tco_currency' value='USD'> <input name='country' value='India' /> </for

我的表单输入为隐藏和可见,如下所示。在本例中,我只想序列化未隐藏的name='country'

<form id="finalform">
<input type='hidden' name='sid' value='901271316' />
<input type='hidden' name='tco_currency' value='USD'>
<input   name='country' value='India' />
</form>

您可以制作它的临时副本,并在序列化之前从中删除隐藏的输入:

var form = $("#finalform").clone();
$(form).find("input[type=hidden]").remove()
var serialized = $(form).serializeArray();

我发现这是一种更干净的方法:

var frm = $('#finalform [type!="hidden"]').serialize()
使用下面的代码<代码>不(:隐藏)将不包括在
serialize()中隐藏的输入类型。

检查

演示

var frm=$('#finalform:input:not(:hidden')。序列化数组();
var frm1=$('#finalform').find(“:input:not(:hidden)”).serializeArray();
$('#firstOutput').text(JSON.stringify(frm))
$('#secondOutput').text(JSON.stringify(frm1))

这里是另一个可能的解决方案,带有演示

var notHidden=$('finalform>:not(输入[type=hidden])).serializeArray();
$('#itemsSerializedCount').text($(notHidden).length)

$(表单)。是否查找?它仍在页面中搜索其他表单并序列化隐藏的输入no,$(form).find()在表单的dom中挖掘与输入匹配的所有内容[type=hidden]。试试看,它会很好用的!它是$(form)而不是$('form'),它不是同一个东西,第一个不是选择器。
var frm = $('#finalform [type!="hidden"]').serialize()
var frm  = $('#finalform').find(":input:not(:hidden)").serialize();
var frm  = $('#finalform :input:not(:hidden)').serialize();