【问题标题】:onchange = "myForm.submit() only working for the first subdropdown in my dropdown menuonchange = "Form.submit() 仅适用于我的下拉菜单中的第一个子下拉菜单
【发布时间】:2019-06-17 17:17:19
【问题描述】:

我有一个包含 5 个团队名称的下拉列表,然后是一个包含每个团队中人员姓名的子下拉列表。 我正在尝试使表单正常工作,以便当您单击某人的姓名时,您可以看到他们的统计信息。

下拉列表中的第一个团队完美运行。其他四个没有。无论哪个团队目前占据榜首位置,这种情况都会持续存在。 如果我从非工作团队中选择一个团队成员,页面仍然会刷新,但数据不会改变。

使用 chrome 开发人员工具,我可以看到,如果我从顶级团队中选择一个团队成员,则 HTML 中的选项将变为已选择的选项。如果我从任何其他团队中选择一个团队成员,则不会发生这种情况。 但是,如果我在非工作团队上添加另一个功能,显示所选人员的姓名,然后从非工作团队中选择一个团队成员,那就行了!

当不同的divs 具有相同的 ID 时,我也看到过类似的问题。这些divs 没有相同的 ID,但它们都具有相同的名称(由我将用户 ID 传递到的类自动生成) 大家觉得呢?

我的前两个团队的 HTML:

<form id="myForm" method="post">
    <div class="dropdown">
        <div class="yourteam">
            <h3>Teams</h3>
        </div>

        <div class="dropdown-content">
            <div class="dropdown-submenu">
                <a class="test" tabindex="-1" href="#">Team1 <span class="caret"></span></a>
                <div id='Team1' class="dropdown-menu">
                    @Html.DropDownListFor(n => n.User, new SelectList(Model.1Members, "Value", "Key"), "Team Members", new { @class = "namedrop", @id = "Name1", onchange = "myForm.submit()" })
                </div>
            </div>

            <div class="dropdown-submenu">
                <a class="test" tabindex="-1" href="#">Team2 <span class="caret"></span></a>
                <div id='Team2' class="dropdown-menu">
                    @Html.DropDownListFor(n => n.User, new SelectList(Model.2Members, "Value", "Key"), "Team Members", new { @class = "namedrop", @id = "Name2", @onchange = "myForm.submit()" })
                </div>
            </div>
            <!-- The rest of the teams -->
        </div>
    </div>
</form>

【问题讨论】:

  • 由于表单有多个具有相同名称的元素,它很可能在服务器端被解释为一个值数组。检查服务器是否正确处理发布的数据
  • 只是更改不同元素的名称会更容易吗?还是因为我使用了 HTML.DropdownListFor 而这不起作用?
  • 您正在使用 DDLF 绑定到同一个属性,为什么不将它们组合成一个 SelectList 并使用多个选择?我认为你不能在同一个表单上拥有 2 个同名的 DDLF。
  • 它的语法是什么样的?抱歉,我对此很陌生。
  • 如果您想要多个选择,请尝试使用 ListBoxFor (LBF) 而不是 DropDownListFor (DDLF)。但是,如果你想从多个下拉列表中绑定,你应该使用for 循环并绑定到列表/值数组。

标签: c# jquery html css forms


【解决方案1】:
 onchange = "myForm.submit()"

你在 onchange 之前错过了@

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多