2015-09-26 113 views
2

我有一个搜索表单,其中有一些用户可以留空的下拉列表。现在我想在提交表单之前删除这些select元素。jquery删除空白下拉列表

我尝试这样做,但这个功能我所有的选择下拉菜单被删除:

$('select option[value=""]').parent().remove(); 

感谢您的帮助 欢呼 丹

+0

你如何留空'select'?只留下第一个选项? – ItayB

回答

1

我假设你的选择都与价值""一个选项,它被用作空的选项。

然后你的jquery调用有效地删除所有这些选择。

当你要选择和删除选择元素,其中用户没有设置另一种选择,你可以写:

var s = jQuery("select").filter(function() { 
    return !this.value; 
}).remove(); 
0

您应该更改您的视图。当你创建一个选择使用“空”选项,如:

<form class="form"> 
    <select id="select1"> 
     <option value="-1"> - </option> 
     .... 
    </select> 

    <select id="select2"> 
     <option value="-1"> - </option> 
     .... 
    </select> 
</form> 

然后,当表单提交删除所有的选择。我不明白为什么你必须删除它们......你是否正在通过Ajax调用来提交表单?

$(document).ready(function() { 
    $('.form').submit(function(e) { 
     var selects = $(this).find('select'); 

     $.each(selects, function(idx, value) { 
      if($(this).val() === -1) { 
       $('.form').find($(this).attr('id')).remove(); 
      } 
     }) 
    }); 
}); 
+0

感谢您的帮助,但没有奏效。如果你想知道为什么我想这样做:我正在使用一个插件来实现数据库搜索,它只能同时使用一个术语。我写了自己的表格,允许用多个词条进行搜索。但是,如果用户不需要搜索的所有字段,则会用空值执行,因此会显示一些不想要的结果。如果我在发送之前删除这些字段,那么就不会发生这种情况,我不必在插件文件上摆弄,并且无需重新输入我的自定义代码即可更新插件到新文件中。 –

0

假设,如果在选择了第一个选项 - 意味着下拉WASN”牛逼选择,我建议:

$("option:first-child:selected") 

选择被选中(默认情况下所有的第一个“选项”标签,如果选择了没有其他选项 比你可以选择自己的父母的。按照之前的操作删除。

希望这是帮助