html - 可选地从表单提交中省略选择参数

标签 html forms select

给定一个 HTML 表单:

<html>
<body>
<form method="GET">
    Select:
    <select id="param" name="param">
        <option></option>
        <option value="Value 1">Value 1</option>
        <option value="Value 2">Value 2</option>
        <option value="Value 3">Value 3</option>
    </select>
    <button type="submit">Submit</button>
</form>
</body>
</html>

如果选择了空白选项,我如何才能完全省略表单提交中的参数?

最佳答案

如果您想要一个纯 JavaScript 方法,如果选择的 option 值为在提交表单之前为空。

只要给表单元素一个名字..

<form name="formName" method="GET"></form>

JS-EXAMPLE HERE

document.forms["formName"].addEventListener('submit', function(){
    var el = this.querySelector('select[name="param"]');
    if(!el.value){
        el.removeAttribute('name');
    }
});

或者,这里是一个 jQuery 版本.. 差别不大。

EXAMPLE HERE

$('form[name="formName"]').submit(function(e){
    var el = $(this).find('select[name="param"]');
    if(!el.val()){
        el.removeAttr("name");
    }
});

关于html - 可选地从表单提交中省略选择参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22358450/

相关文章:

javascript - 停止在 innerHTML 插入时清除输入

Javascript -> 通过选择重定向并选择选定的值

html - ExtJs TreePanel 对象中的 Css Div float 问题

html - CSS 页脚格式

html - @font-face 不适用于 Chrome 和 Safari

javascript - 在同一页面上提交表单而无需重新加载并使用 POST 变量

html - Div 内部的 Div 填充整个父 DIV,不显示 :Table

angular - 尽管在 Angular 中重置了表单,但输入字段仍被标记为红色

windows - 在 Windows 上的 STDIN 上使用 IO::Select

sql-server - 使用未在 mssql 中运行的变量选择查询