我有一个大表单,将由jQuery函数序列化。
问题是我需要在序列化所有空值之前从此表单中删除。
我找到了一种方法来成功删除所有空输入文本字段,但不是选择。
选择下拉列表无效。
以下Ceck:
echo "<script type=\"text/javascript\">
$(document).ready(function() {
$('#submForm').validate({
submitHandler: function(form) {
// Do cleanup first
$('input:text[value=\"\"]', '#submForm').remove();
$('select option:empty', '#submForm').remove();
var serialized = $('#submForm').serialize();
$.get('".$moduleURL."classes/DO_submission.php', serialized);
window.setTimeout('location.reload()', 8000);
return false;
form.submit();
}
})
});
它应该完全删除值为空的下拉选项。不仅选项而且整个选择框不应包含在序列化函数中。
我如何实现这一目标?
$('select option:empty', '#submForm').remove();
此代码无法正常工作..
答案 0 :(得分:2)
首先,select
不能为空值。如果未设置option
属性,它将默认为第一个selected
。
其次,$('select option:empty')
选择空的option
。要做某事,option
应该有一个值,所以选择器永远不会工作。
您需要做的是检查所有select
以查看它们的值是否与默认值不同,如果不是,请将其删除。
答案 1 :(得分:1)
如果使用'空选择'表示用户没有选择“有效”选项(例如,选择的第一个选项是<option value=''>Select your value</option>
),为什么不迭代选择并检查他们的值?
$('select').each(function(){
if ($(this).val() === ''){//this assumes that your empty value is ''
$(this).remove();
}
});
编辑 - 抱歉错误,我错过了最后一个括号,我尝试了它,它适用于我
答案 2 :(得分:0)
尝试
$('select option:selected:empty').parent().remove();
阅读尼古拉的评论后编辑。
答案 3 :(得分:0)
我只是将整个表格用于jquery Form而不是整理表格,然后你所要做的就是调用
$('#submForm').ajaxSubmit({/.../});