2016-05-12 39 views
1

這是文本框,警告框,簡單的網頁顯示一個Razor視圖頁面上的價值:爲什麼我無法在Razor頁面上獲取正確的文本框值?

<!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> 

我所採取的文本框的值,並分配到一個變種originvalue。現在我想在一個警告框中顯示這個值。這是一種錯誤嗎?我無法弄清楚這裏缺少的東西。

回答

3

問題是因爲您只在頁面加載時設置了originvalue,而input沒有任何值。如果你想獲取用戶輸入的值,設置可變單擊處理:

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

另外請注意,您原來的JS代碼中有一組花括號/括號太多,而你也應該使用console.log()來調試alert(),因爲前者不強制數據類型。

+0

yuppüR右thnxx您指出正確的原因 – duke

+0

沒問題,很高興幫助 –

1

請更換您的

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

$("#btnPost").click(function() { 
         alert($("#txtName").val()); 
        }); 
相關問題