【问题标题】:Jquery and ASCX control rendered multiple times on a pageJquery 和 ASCX 控件在页面上多次呈现
【发布时间】:2009-09-17 00:59:57
【问题描述】:

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

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

在呈现的页面上,当我想重置其中一个控件的下拉菜单时,我有一个超链接,它以 g 作为参数调用 javascript 函数。

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

function clearControl(g) {
var dds = $("select[jqID = 'dd\\S*" + g + "']");
}

然后我会这样做:

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

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

【问题讨论】:

    标签: c# .net asp.net jquery


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      相关资源
      最近更新 更多