c# - 为什么我无法在 Razor 页面上获得正确的文本框值?

标签 c# jquery asp.net-mvc razor

这是一个带有文本框和警告框的简单网页,用于在 Razor View 页面上显示其值:

<!DOCTYPE html>
<html>
    <head>
        <title>Demo</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
    </head>
    <body>
        @using (Html.BeginForm())
        {
            <div>
                @Html.Label("Enter your name")   
                @Html.TextBox("txtName")
            </div>  
            <input type="button" id="btnPost" value="Load Data using Post" />

            <script>
                $(document).ready(function () {
                    //$("#txtName").keyup(function () {
                    //    alert(this.value);
                    //});
                    var originvalue = $("#txtName").val();

                    $("#btnPost").click(function () {
                        alert(originvalue);
                    });
                });
                });
            </script>
        }
    </body>
</html>

我已获取文本框值并将其分配给 var originvalue。现在我想在警告框中显示此值。这是某种错误吗?我不知道这里缺少什么。

最佳答案

问题是因为您只在页面加载时设置了 originvalueinput 没有任何值。如果您想检索用户键入的值,请在点击处理程序内部设置该变量:

$(document).ready(function () {
    $("#btnPost").click(function () {
        var originvalue = $("#txtName").val();
        console.log(originvalue);
    });
});

另请注意,您的原始 JS 代码有一组右括号/方括号太多,您还应该使用 console.log() 来调试 alert() 因为前者不强制数据类型。

关于c# - 为什么我无法在 Razor 页面上获得正确的文本框值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37190441/

相关文章:

javascript - 分配 Enter 按键的更简洁方式

jquery - 如何使用 jquery 将模型数据和当前时间从 View 发送到 Controller 操作

c# - 设置数据网格单元格背景颜色wpf

c# - 对象转储类

c# - 使用 linq 求和值

c# - ASP MVC 如何将参数从 View 传递到 Controller C# 中的方法

javascript - 如何使用 Javascript 和 Razor 编写干净的代码

c# - 是否可以从 autofac 注册中排除构造函数?

jquery onmouseover 效果不起作用

javascript - 同时调用多个函数