Javascript 如何找到没有选择任何值的所有下拉列表?

Javascript 如何找到没有选择任何值的所有下拉列表?,javascript,jquery,Javascript,Jquery,我有一个表单,我使用JS手动提交,它使querystring直接,因为它附加了所有控件id,不管它们是否有值,我在某个地方读到,在提交表单之前,我可以通过禁用没有值的控件来避免这种情况 因此,在我的表单中,我有文本框、复选框和选择下拉列表,我试图编写一个内联查询,该查询将获得所有没有从列表中选择选项/值的选择: 这个$'form'.find'select option:selected[value!=]'有些效果,但这个$'form'.find'select option:selected[va

我有一个表单,我使用JS手动提交,它使querystring直接,因为它附加了所有控件id,不管它们是否有值,我在某个地方读到,在提交表单之前,我可以通过禁用没有值的控件来避免这种情况

因此,在我的表单中,我有文本框、复选框和选择下拉列表,我试图编写一个内联查询,该查询将获得所有没有从列表中选择选项/值的选择:

这个$'form'.find'select option:selected[value!=]'有些效果,但这个$'form'.find'select option:selected[value=]根本不起作用


如果您有任何帮助,我们将不胜感激。

通过检查表单中的每个元素,在提交表单时可以直接执行此操作。请确保您为用户提供了一种实际重新启用已禁用表单元素的方法

工作守则是:

$("#testForm").on("submit", function() {
    $(this).find('select option:selected[value=""]').parent().attr("disabled", "disabled");
    alert("ok");  // for debug purposes
    return false; // this stops the form from actually being submitted
});
下面是一个演示小部件禁用的工作小提琴:

编辑:更新以实际选择禁用的图元


编辑2:更新以压缩代码,在OP发出请求后

您是否不希望使用GET提交表单,从而导致所有变量都在查询字符串中?您可以通过在javascript中使用POST方法来避免这种情况。快速搜索会发现:-现在我们只需要像这样改变它:jQueryselect.filterfunction{return this.value;}@Twicetimes:这是一个记录筛选页面,站点功能需要用户能够共享筛选结果,因此使用GET.Ah ok,在这种情况下,我认为@owenconti已经为这个问题找到了答案elements@somethinghere:this.value在所选类型上不起作用。该示例看起来不错,是否可以在单行上完成此操作?不,我猜?哇,这很漂亮,所以我错过了。是的,我不确定你错过了什么,你从来没有发布过完整的源代码:但是你想把选定的值作为目标,并禁用保存这些值的实际父元素,在这种情况下,就是选择列表本身,为了在原始问题中禁用它,我提到我尝试了$'form'。查找'select option:selected[value=]”,无论如何,感谢您为我指明了正确的方向。