使用Jquery重置ascx用户控件

时间:2013-08-08 09:00:17

标签: jquery asp.net

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

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

请给我任何想法。

1 个答案:

答案 0 :(得分: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();