簡體   English   中英

為什么在“剃刀”頁面上無法獲得正確的文本框值?

[英]Why can't I get the correct textbox value on Razor page?

這是帶有文本框和警報框的簡單網頁,可在剃刀視圖頁面上顯示其值:

<!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 現在,我想在警報框中顯示此值。 這是某種錯誤嗎? 我不知道這里缺少什么。

問題是因為僅在頁面加載且input中沒有值時才設置originvalue 如果你想獲取用戶輸入的值時,設置的點擊處理程序內部的變量:

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

還要注意,您的原始JS代碼中有一組右括號/括號太多,並且您還應該使用console.log()來調試alert()因為前者不強制數據類型。

請更換您的

 $("#btnPost").click(function () {
                        alert(originvalue);
                    }); 

$("#btnPost").click(function () {
                        alert($("#txtName").val());
                    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM