有没有办法将javascript函数与用户控件相关联?假设我有一个用.ascx编写的名字控件。我可以定义一个与名称控制相关联的客户端函数,比如.clear()
。清除功能将清除该控件的所有元素。我知道我可以创建clear()javascript函数,但这将是全局javascript函数,不一定与名称控件绑定。我想将函数绑定到名称控件,以便给定我对name对象的引用,我应该能够简单地从该引用中调用该函数,如:
name.clear();
我知道这可以使用MS Ajax框架完成,但是想知道我是否可以使用jQuery做类似的事情。
答案 0 :(得分:0)
如果通过“clear”表示将文本/密码输入,textareas和select元素的值设置为空字符串,并将单选按钮和复选框设置为!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”选择器,可以选择所有选择,textareas和输入,但是你不想设置复选框和无线电的值,所以它们需要单独完成。)
答案 1 :(得分:0)
用户控件本身不会呈现为实际的html元素,但是可以从客户端脚本中引用用户控件中实际呈现为html元素的任何部分。
您需要将控制客户端ID从页面或用户控件写入html,如下所示:
<script type="text/javascript">
$('#<%= TheControl.ClientID %>').clearChildren();
</script>
用于清除孩子的jQuery函数在@nnnnnn的答案中定义。