(可选)从表单提交中省略select参数

时间:2014-03-12 16:51:29

标签: 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>

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

4 个答案:

答案 0 :(得分:2)

如果您想要纯JavaScript方法,如果在提交表单之前所选的name值为空,则此类内容将删除select元素的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");
    }
});

答案 1 :(得分:1)

这就是我提出的(JQuery):

$("form").submit(function(e) {
  if ($("#param").val() === "")
    $("#param").removeAttr("name");
});

它的优势在于,点击提交后它不会立即明显改变DOM。

答案 2 :(得分:0)

使用下面的代码,你需要Jquery

<script type="text/javascript">
   function checkForm()
   {
     var paramVal = $('#param').val();
     if(paramVal == "0"){ return false;}
   }
</script>

<select name="param" id="param">
    <option value="0"></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" onclick="return checkForm();">Submit</button>

答案 3 :(得分:0)

<script type="text/javascript">
   function validate()
   {
 if ($("#param").val() == "")
    $("#param").removeAttr("name");
   }
</script>
<form action="" method="post" onsubmit="return validate()">
<select name="param" id="param">
    <option value=""></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>