1

我有以下简单的形式:

<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=提交表单有没有办法让它在没有这些空查询字符串的情况下提交表单只是为了重置它?

4

5 回答 5

0

我建议删除控件本身:

$(document).ready(function () {
    $(document).on('click', '.test', function () {
        $('select[name*="category"]').remove();
        $('form').submit();
    });
});
于 2013-10-25T18:06:06.313 回答
0

如果你真的想重置整个表单,那么使用基本的 JS .reset()。在您的代码中,您可以通过将整个click函数替换为:

$('form')[0].reset();

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

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

于 2013-10-25T18:14:56.027 回答
0

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

$(document).ready(function () {
    $(document).on('click', '.test', function () {
        $('select[name*="category"]').val('');
    });
});
于 2013-10-25T18:01:25.607 回答
0

尝试这个

$(document).ready(function () {
 $('select[name*="category"]').val('');
  $(document).on('click', '.test', function () {
    $('select[name*="category"]').val('');
  });
});
于 2013-10-25T18:11:04.033 回答
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>
于 2013-10-25T20:24:27.737 回答