我在页面上有一个表单可以过滤结果表,并将过滤器作为查询字符串添加到网址上,例如/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
});
});
答案 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();
});
});