Javascript 如何仅传递某些表单值

Javascript 如何仅传递某些表单值,javascript,html,Javascript,Html,我有一张表格有很多选择。出于各种原因,我只想将用户选择的内容传递给表单。换句话说,每个SELECT都是这样的: <SELECT name=field001> <option value=-1>Please pick a value</option> <option value=1>1</option> <option value=2>2</option> <option value=3>

我有一张表格有很多选择。出于各种原因,我只想将用户选择的内容传递给表单。换句话说,每个SELECT都是这样的:

<SELECT name=field001>
  <option value=-1>Please pick a value</option>
  <option value=1>1</option>
  <option value=2>2</option>
  <option value=3>3</option>
</SELECT>

通常,一次只选择一到两个,我只想将所选的传递给表单。我猜我需要在JavaScript中取消设置-1的输入,但我不知道该怎么做,也不知道是否有一种标准的方法来处理这种事情。

发布表单时,它会将每个控件的值发送到服务器。如果您需要防止这种情况,我认为您最好的选择是覆盖onSubmit操作并重定向到同一页面的新实例,只在querystring上放置您想要的信息

请记住,这将大大增加代码的复杂性,并使其更难维护。我的意见是,你根本无法获得足够的表现,使你的努力值得,但这取决于你

这并不常见

如果您真的需要它,那么您可以按照@Sergio的建议执行操作,或者从dom中删除您想要跳过的项目,或者在提交时可能将它们标记为禁用,尽管有些浏览器使用禁用的控件执行不同的操作,您必须检查这些控件

这真的不常见。如果您有太多的选择,发送它们会导致问题,那么您的选择太多了


处理这个问题的正常方法是使用您的魔法值-1,以知道何时忽略服务器端的某些值。

我总是会检查每个元素,不管数量多少,但特别是因为数量。除此之外,您如何确保用户没有更改其他内容?你说:

通常,一次只选择一个或两个


你甚至都不是100%确定,是吗?经验告诉我,永远不要相信你希望发生的事情,因为这往往是出乎意料的事情

假设您只有一个表单,请将此脚本添加到页面:

document.forms[0].onsubmit = function(){
    var selects = this.getElementsByTagName('select');
    for ( var i = selects.length - 1; i>=0; i-- ) {
        if ( selects.item(i).value == -1 ) {
            selects.item(i).parentNode.removeChild(selects.item(i));
        }
    }
    return true;
}