【问题标题】:Passing a Javascript-updated value from <input type="button"> to ASP.NET code behind将 Javascript 更新的值从 <input type="button"> 传递到 ASP.NET 代码后面
【发布时间】:2020-11-24 14:31:19
【问题描述】:

我的 ASP.NET 网页中有一组按钮,如下所示:

<input id="B1" type="button" onclick="return change(this)" value="A" runat="server" />

Javascript 函数将允许按钮值在单击时在一组值之间变化。

function change(elem)
    {
        if (elem.value === "A")
            elem.value = "B";
        else if (elem.value === "B")
            elem.value = "C";
        else
            elem.value = "A";
    }

在后面的代码中,按钮值被传递到一个 SQL 查询中:

cmd.Parameters.AddWithValue("@b1", B1.Value);

理想情况下,提交整个网页表单时,应将当前按钮值传递给后面的代码。通过检查元素检查更改时,我可以验证该值是否更新到下一个选项,依此类推。但它似乎只传递在输入标签中找到的硬编码值,即。值“A”被发送到代码后面,无论用户是否将值更改为其他选项。

SQL 查询没有问题,因为“默认”按钮值已插入到数据库中。

任何见解都会有所帮助。提前致谢。

【问题讨论】:

    标签: javascript c# asp.net


    【解决方案1】:

    当你使用 type="button" 改变的值不能在回发时被捕获,也许你可以尝试使用隐藏的输入元素来实现。

    <script>
        function change(elem) {
    
            if (elem.value === "A")
                elem.value = "B";
            else if (elem.value === "B")
                elem.value = "C";
            else
                elem.value = "A";
            document.getElementById("<%=B1.ClientID%>").value = elem.value;
    
        }
    </script>
    

    HTML

     <input type="button" onclick="return change(this)" value="A" runat="server" />
    <input id="B1" type="hidden" value="A" runat="server" />
    <script
    

    【讨论】:

    • 我可以确认这是可行的,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 2013-01-14
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    相关资源
    最近更新 更多