jQuery只清除一个查询字符串值

时间:2011-11-04 13:29:30

标签: jquery

我在页面上有一个表单可以过滤结果表,并将过滤器作为查询字符串添加到网址上,例如/Search?Name=john&Title=mr&Location=

正如您所看到的,位置是空白的,因为该查询没有传递任何内容。所以基本上当表单提交时它会发送所有查询,而那些有值的文件会过滤结果。

我想要做的是允许用户清除单个查询,例如说他们决定不再按john过滤,但他们仍然希望保留其他查询,以便我不能只清除整个查询字符串

关于如何做到这一点的任何想法?

每个过滤器类似于:

<td><input name="Name" type="text" /> <a class="clear">Clear</a></td>

所以我想到了以下几点:

$('table.filter td').each(function (i) {

            $(this).children('a.clear').click(function (e) {

                e.preventDefault();

                // CLEAR ONLY THIS FILTER FROM THE QUERY STRING

                // SUBMIT THE FORM AGAIN WITH THE ORIGINAL QUERY STRING MINUS THE REMOVED FILTER VALUE
                });
});

2 个答案:

答案 0 :(得分:2)

试试这个:

jQuery('a.clear').each( function() {


    jQuery(this).click( function(event) {

        event.preventDefault();
        jQuery(this).closest('td').children('input').val('');
            jQuery('#theform').submit(); //for resubmitting the form

    });


});

答案 1 :(得分:1)

$('table.filter td').each(function (i) {
    var $this = $(this),
        $input = $(this).find('input')
        $form = $this.closest('form');

        $this.children('a.clear').click(function (e) {
            e.preventDefault();
            $input.val('');
            $form.submit();
        });
});