jQuery序列化移除空Select
jQuery serialize remove empty Select
我有一个大表单,它将由jQuery函数序列化。
问题是,在序列化所有空值之前,我需要从该表单中删除。
我找到了一种方法,成功地删除了所有空的输入文本字段,但没有删除选择。
它不能与选定的下拉菜单一起正常工作。
下面的标题:
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();
此代码无法正常工作。。
首先,select
不能有空值。如果未设置selected
属性,则默认为第一个option
。
第二,$('select option:empty')
选择空的option
s。要做某事,option
应该有一个值,所以afaik选择器永远不会工作。
您需要做的是检查所有select
,看看它们的值是否与默认值不同,如果不是,请删除它们。
如果使用"空选择",意味着用户没有选择"有效"选项(例如,选择的第一个选项是<option value=''>Select your value</option>
),为什么不迭代选择并检查其值?
$('select').each(function(){
if ($(this).val() === ''){//this assumes that your empty value is ''
$(this).remove();
}
});
EDIT-很抱歉出现错误,我错过了最后一个括号,我试过了,它对我有效
我不想对整个表单进行序列化,而是使用jquery form,然后你所要做的就是调用
$('#submForm').ajaxSubmit({/.../});
尝试
$('select option:selected:empty').parent().remove();
阅读尼古拉的评论后编辑。
相关文章:
- Ajax发布表单序列化,发布引号'
- 序列化数据属性中对象的最可靠方法
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 为什么JSON.stringify没有序列化原型值
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 是否可以在javascript中反序列化java对象
- jQuery Ajax数组序列化错误
- 对象序列化,JAVA,Javascript
- 在jquery中以序列化的形式传递额外的paparameter
- 如何使用angularjs序列化对象
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 在html标记中序列化javascript代码
- 如何在C#中反序列化json对象
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 使用JSON序列化图论树的解决方法
- PHP未从AJAX接收序列化数据
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 序列化表单时进行编码
- jQuery序列化移除空Select