【问题标题】:Can't access button in nested button control with jQuery无法使用 jQuery 访问嵌套按钮控件中的按钮
【发布时间】:2011-09-23 22:37:27
【问题描述】:

当用户点击[ENTER] 键时,我正在尝试从 JavaScript 提交表单。 .submit 不起作用,因为我们的表单中有多个按钮。

DDLClientName 下拉列表位于我们的aspnetForm 表单中。此表单中还有另一个自定义控件,称为SaveCancelDelete。此控件 (*.ascx) 包含我们所有的按钮。

我想要做的是触发其中一个按钮的点击事件。我在下面的作品,但它有点被黑了。我用嵌套的ClientID 回调尝试了下面的代码,但这似乎不起作用。我正在寻找最干净的方法。

    jQuery(this.Elements.DDLClientName).keypress(function(e) {
        if (e.keyCode === 13) {
            //jQuery("#aspnetForm").submit();
            jQuery("#ctl00_body_QuickDataEntryEditor_SaveCancelDelete_BtnNonAuthenticated1").click();
        }
    });

这似乎不起作用:

jQuery('#<%=SaveCancelDelete.ClientID %>').jQuery('#<%=BtnNonAuthenticated1.ClientID %>').click();

【问题讨论】:

  • 用 向页面呈现什么?您还可以提供一个呈现给 QuickDataEntryEditor 页面的 HTML 示例吗?

标签: jquery controls click nested


【解决方案1】:

您的第二个示例必须是 .find() 而不是 .jQuery()

jQuery('#<%=SaveCancelDelete.ClientID %>').find('#<%=BtnNonAuthenticated1.ClientID %>').click();

但由于它已经是一个 ID,你不需要同时拥有两者,这也应该可以:

jQuery('#<%=BtnNonAuthenticated1.ClientID %>').click();

【讨论】:

  • 我无法让它们工作..当我对你在它末尾使用 .val() 而不是 .click() 的第一段代码发出警报时,它说“未定义”。
  • 奇怪.. 我认为我的 JavaScript 伪类已被缓存,并且从未更新。现在效果很好!两者都有效,但我更喜欢第一个,以防我们引入另一个控件。它显示了它所在的控件。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多