Jquery和ASCX控件在页面上多次呈现

时间:2009-09-17 00:59:58

标签: c# .net asp.net jquery

我有一个ascx控件,其中包含我希望能够使用JavaScript重置的下拉框。 因为ascx控件在aspx页面上多次呈现,所以我以编程方式为每个下拉列表添加一个区别字段,例如ascx后面的代码:

var g = Guid.NewGuid().ToString().Replace("-", "");
DropDownListBool.Attributes.Add("jqID", "ddBool" + g);
DropDownListEqual.Attributes.Add("jqID", "ddEq" + g);

在渲染页面上,当我想重置其中一个控件的下拉列表时,我有一个超链接调用一个javascript函数,其中g作为参数。

在javascript中,使用jquery,我尝试为这个特定的ascx控件获取两个下拉列表:

function clearControl(g) {
var dds = $("select[jqID = 'dd\\S*" + g + "']");
}
然后我做了:

jQuery.each(dds, function(i, val) { val.select = 0; });

这应该有用吗?现在它正在重置看似随机的下拉框。 属性长度是否有限制?

1 个答案:

答案 0 :(得分:1)

我认为使用其他选择器可能会更好,比如“ends with”属性选择器。

var dds = $("select[jqID$='" + g + "']");

如果您需要根据以dd开头并以g的值结尾进行选择,则可以使用过滤器并同时使用“结束”和“starts with”;

var dds = $("select[jqID^='dd']").filter( "[jqID$='" + g + '']");

据我所知,在使用equals选择器属性时,不能使用正则表达式。我很惊讶它对你有用。