将表行传递到 JS 文件

发布于 2024-12-29 10:29:18 字数 682 浏览 0 评论 0原文

我不仅尝试使用它传递下拉列表 ID,而且还尝试传递行。

<asp:DropDownList ID="dropdownPhase" _clientId="comboboxPhase" runat="server" Font-Size="xx-small" onchange="SummaryHelper.onPhaseChange(this,this.tr);" />

这是我的 JS 文件中的 Javascript

onPhaseChange: function(dropdown, row) {
    var combobox = $(dropdown);
    var table = combobox.parents("table").eq(0);
    comboboxWorkUnit = row.find("select.workUnit");

    if (combobox.data('oldValue') || !combobox.find("option[value='']").length) {
        comboboxWorkUnit.hide();
    }

},

当我按原样运行时出现此错误:

Microsoft JScript 运行时错误:“未定义”为 null 或不是对象

I am trying to pass not only the dropdownlist ID using this, but I'm also trying to pass the row.

<asp:DropDownList ID="dropdownPhase" _clientId="comboboxPhase" runat="server" Font-Size="xx-small" onchange="SummaryHelper.onPhaseChange(this,this.tr);" />

Here is the Javascript from my JS File

onPhaseChange: function(dropdown, row) {
    var combobox = $(dropdown);
    var table = combobox.parents("table").eq(0);
    comboboxWorkUnit = row.find("select.workUnit");

    if (combobox.data('oldValue') || !combobox.find("option[value='']").length) {
        comboboxWorkUnit.hide();
    }

},

When I run it the way it is I get this error:

Microsoft JScript runtime error: 'undefined' is null or not an object

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨小墨 2025-01-05 10:29:18

那么 this.tr 没什么。我很想知道你从哪里得到的。

如果您想传递该行,则需要像在函数中一样获取该行。

onchange="SummaryHelper.onPhaseChange(this,$(this).closest('tr'));"

这会传递一个带有行的 jQuery 对象,因为您在函数中像使用 jQuery 对象一样使用它。


但你也可以在函数中完成它。

onPhaseChange: function(dropdown) {
    var combobox = $(dropdown);
    var row = combobox.closest('tr');
    var table = combobox.parents("table").eq(0);
    comboboxWorkUnit = row.find("select.workUnit");

    if (combobox.data('oldValue') || !combobox.find("option[value='']").length) {
        comboboxWorkUnit.hide();
    }

},

Well this.tr is nothing. I'd be curious to know where you got that.

If you want to pass the row, you'll need to get the row just like you are in the function.

onchange="SummaryHelper.onPhaseChange(this,$(this).closest('tr'));"

This passes a jQuery object with the row since you're using it like a jQuery object in the function.


But then you could just do it in the function too.

onPhaseChange: function(dropdown) {
    var combobox = $(dropdown);
    var row = combobox.closest('tr');
    var table = combobox.parents("table").eq(0);
    comboboxWorkUnit = row.find("select.workUnit");

    if (combobox.data('oldValue') || !combobox.find("option[value='']").length) {
        comboboxWorkUnit.hide();
    }

},
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文