重置并提交没有空值的表单

时间:2013-10-25 17:53:57

标签: javascript jquery html forms

我有以下简单形式:

<select name="category">
<option value="">Choose a Category</option>  
<option value="Social">Social</option>
<option value="Media">Media</option>
</select>

我使用以下jquery来重置表单:

$(document).ready(function(){
$(document).on('click', '.test', function(){  
  $('select[name*="category"]').val('');
  $('form').submit();
});
});

问题是现在使用空查询字符串提交表单/?category=有没有办法让它提交表单而没有这些空查询字符串只是为了重置它?

5 个答案:

答案 0 :(得分:0)

我认为您的代码中不需要提交,只需使用以下内容:

$(document).ready(function () {
    $(document).on('click', '.test', function () {
        $('select[name*="category"]').val('');
    });
});

答案 1 :(得分:0)

我建议删除控件本身:

$(document).ready(function () {
    $(document).on('click', '.test', function () {
        $('select[name*="category"]').remove();
        $('form').submit();
    });
});

答案 2 :(得分:0)

试试这个

$(document).ready(function () {
 $('select[name*="category"]').val('');
  $(document).on('click', '.test', function () {
    $('select[name*="category"]').val('');
  });
});

答案 3 :(得分:0)

如果您确实要重置整个表单,请使用基本的JS .reset()。在您的代码中,您可以将整个click函数替换为:

来执行此操作
$('form')[0].reset();

这会将选定的JQuery对象转换为HTML节点引用,以便您可以在其上使用JS reset函数。这会将表单中的所有字段重置为默认值。

注意:技术上$('form')[0]是“页面上所有表单数组中的第一个对象”,因此,如果您有多个表单,则需要更多具体,以确保您重置预期的表格。

答案 4 :(得分:0)

试试这个:

 $('#frm').submit(function(form){
            $('#frm').find('[name="category"]').remove();
            form.submit();  
        });

这将在表单提交期间删除查询参数。

<html>
<head>
 <script type='text/javascript' src='file:///D:/bootstrap/js/jquery-ls.js'></script>
<body>
<form id='frm' method='get' action=''>
<select name="category" >
<option value="">Choose a Category</option>  
<option value="Social">Social</option>
<option value="Media">Media</option>
</select>

<input class='test' type='submit'  value='click' />
</form>

<script>
$(document).ready(function(){

    $(document).on('click','.test',function(){
        var data=$('#frm').serializeArray();
        //alert(data[0]['value']);
        console.log(data[0]);
        if(data[0]['value']){
        //  alert('t');
            $('frm').submit();
        }
        else{
        $('#frm')[0].reset();

        $('#frm').find('[name="category"]').remove();
    }
    });

});
</script>
</body>