有没有办法将函数与用户控制关联起来

本文关键字:用户 控制 关联 起来 函数 有没有 | 更新日期: 2023-09-27 18:24:09

有没有办法将javascript函数与用户控件关联起来?比方说我有一个用.ascx编写的名称控件。我可以定义一个客户端函数吗,比方说.clear(),它将与名称控件关联。清除功能将清除该控制的所有元素。我知道我可以创建clear()javascript函数,但这将是全局javascript函数,不一定与名称控制绑定。我想将函数与名称控制联系起来,这样,如果我有对名称对象的引用,我应该能够简单地从该引用调用该函数,比如:

name.clear();

我知道这可以使用MSAjax框架来完成,但我想知道是否可以使用jQuery来完成类似的操作。

有没有办法将函数与用户控制关联起来

如果您所说的"清除"是指将文本/密码输入、文本区域和选择元素的值设置为空字符串,并将单选框和复选框设置为!checked,那么您可以执行以下操作:

$("#someid").find('select,textarea,input[type="text"],input[type="password"]').val('');
$("#someid").find('input:radio,input:checkbox').prop('checked',false);

或者作为插件:

(function( $ ) {
  $.fn.clearChildren = function() {
    this.find('select,textarea,input[type="text"],input[type="password"]').val('');
    this.find('input:radio,input:checkbox').prop('checked',false);
    return this;
  };
})( jQuery );
$("#someid").clearChildren();

演示:http://jsfiddle.net/nnnnnn/AvfUz/

(jQuery确实有一个":input"选择器,它可以选择所有的选择、文本区域和输入,但您不想设置复选框和单选框的值,因此它们需要单独进行。)

用户控件本身并没有被呈现为实际的html元素,但用户控件中实际呈现为html元素的任何部分都可以从客户端脚本中引用。

您需要将控件客户端id写入页面或用户控件的html中,如下所示:

<script type="text/javascript"> 
    $('#<%= TheControl.ClientID %>').clearChildren();
</script>

在@nnnnnn的答案中定义了用于清除子项的jQuery函数。