0

我正在开发一个有搜索页面的 asp.net Web 应用程序。在这个搜索页面上,我们有大约 37 个搜索过滤器控件。所有输入控件都是不同的类型,例如文本框、下拉列表(在页面加载时从数据库填充)、单选按钮和复选框列表。在页面的右侧,我们在 Jquery 和 Ajax 的帮助下显示了该搜索的结果。现在我为左侧搜索过滤器创建一个 .ascx 用户控件,并将所有搜索过滤器控件放在该用户控件中。这个页面对我来说很好,唯一的问题是我在那个页面上有重置搜索按钮(即在我的 ascx 控件内),我必须清除该按钮单击事件上的所有搜索过滤器控件值(记住我不想重新加载我的页面,所以我使用 Jquery)。在解决方案上,我必须为所有 37 个控件编写代码以将其值重置为默认值。

注意:请记住,由于某种原因,我不能将更新面板放在 aspx 页面上。

请给我任何想法。

4

1 回答 1

2

您可以将输入类型选择器用于最少的代码,即。$(':input') 将选择所有文本框字段。如果您想清除当前表单上的所有控件,我编写了一个小插件,您可以使用它:

$.fn.clearForm = function () {
    return this.each(function () {
        var type = this.type, tag = this.tagName.toLowerCase();
        if (tag == 'form' || tag == 'div') 
            return $(':input', this).clearForm();
        if (type == 'text' || type == 'password' || tag == 'textarea')
            this.value = '';
        else if (type == 'checkbox' || type == 'radio')
            this.checked = false;
        else if (tag == 'select')
            this.selectedIndex = -1;
    });
};

用法:

$('#divId').clearForm();
$('.div_class').clearForm();
$('form').clearForm();
于 2013-08-08T09:20:10.070 回答