【问题标题】:JavaScript: How to assign value of button element to another div element?JavaScript:如何将按钮元素的值分配给另一个 div 元素?
【发布时间】:2020-04-05 06:00:19
【问题描述】:

我需要设置隐藏 div 的值,使其等于按钮的值。我认为下面的代码是正确的方法,但是当我单击“编辑”按钮时,我没有看到 div 的值更新。

按钮

<td>
<button id="@user.UserId" class="updateUser" value="@user.UserId">Edit</button>
</td>

分区

@Html.HiddenFor(m => m.User_Id, new { @class = "updateUserId" })

jQuery

<script type="text/javascript">
        $(document).ready(function () {
            var updateUserId = $('div.updateUserId').val();
            $('button.updateUser').click(function () {
                updateUserId = $('button.updateUser').val();
                return updateUserId;
            })
        })
    </script>

【问题讨论】:

  • 您的意思是,您需要更新div的文本内容,以便在单击按钮时显示按钮的值?
  • div 元素没有值。只有输入字段有值。在 div 中,您有 innerhtml .html() 或 innertext .text()。

标签: javascript jquery html


【解决方案1】:

这里有两个问题;首先是 Razor 的以下行会将隐藏的 &lt;input /&gt; 元素写入您的文档(而不是 &lt;div&gt;):

// Produces <input type="hidden" class="updateUserId" ... />
@Html.HiddenFor(m => m.User_Id, new { @class = "updateUserId" })

这意味着您需要更新脚本以将元素选择为input(而不是div),以便更新它的值。

第二个问题是您在单击事件期间将按钮值应用于隐藏输入的逻辑。实现您所需的一种方法是进行以下调整:

    $(document).ready(function () {

        $('button.updateUser').click(function (event) {

            // Prevent possible form submission?
            event.preventDefault()

            // Obtain user value from this updateUser button
            var updateUserValue = $(this).val();

            // Select hidden input with class updateUserId and update 
            // the value to that of the button
            $('input.updateUserId').val(updateUserValue);
        });
    });

希望有帮助!

【讨论】:

  • 我看不到你在哪里使用var updateUserValue。你能澄清一下吗?
  • @MatthewWright 我很抱歉 - 这是我的错字,刚刚更正了答案:)
  • 明白。我还查看了代码并查看了在哪里进行更改。
  • 酷,你的项目一切顺利:)
猜你喜欢
  • 2019-08-31
  • 2023-04-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多