![](/img/trans.png)
[英]How can I get the value of Validation Message from form in ASP.Net MVC, using javascript?
[英]How to get value from javascript in asp.net page based on masterpage which can have only one asp.net form
我想快速模擬一次密碼。 問題是我在母版頁子頁面中,並且一個contentplaceholder中只能有一個asp.net表單,另一個包含生成隨機代碼的javascript代碼。
我怎樣才能將此代碼傳遞給asp.net,以便當用戶單擊validate時,我可以將他輸入的代碼與javascript生成的隨機代碼進行比較(也許是ajax,但我看不出怎么做?)
如果我可以擁有2個asp.net表格,那將不是問題。
更新:我修改了下面的源代碼以包含Andrei建議的解決方案。
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<form id="form1" runat="server">
Username: <asp:TextBox ID="txtUserName" runat="server" /></br>
OTP: <asp:TextBox ID="txtOTP" runat="server" /></br>
<asp:TextBox ID="OtpHiddenField" runat="server" /></br>
<asp:Button ID="btnValidate" runat="server" onclick="btnValidate_Click" Text="Validate" /></br>
</form>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<h2>Fake OTP Simulation</h2>
Enter "John"
</br>
Enter OTP
<script type='text/javascript'>
var pass = String(getRandomInt(0, 9)) + String(getRandomInt(0, 9)) + String(getRandomInt(0, 9)) + String(getRandomInt(0, 9));
document.write(pass);
document.getElementById('<%= OtpHiddenField.ClientID %>').value = pass;
</script>
您可以將生成的值插入與表單一起發布的隱藏字段中。
<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" Runat="Server">
<form id="form1" runat="server">
Username: <asp:TextBox ID="txtUserName" runat="server" /><br/>
OTP: <asp:TextBox ID="txtOTP" runat="server" /><br/>
<asp:Button ID="btnValidate" runat="server" onclick="btnValidate_Click" Text="Validate" /><br/>
<asp:HiddenField ID="OtpHiddenField" runat="server" />
</form>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" Runat="Server">
<h2>Fake OTP Simulation</h2>
Enter "John"
<br/>
Enter OTP
<script type='text/javascript'>
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var pass = String(getRandomInt(0, 9)) + String(getRandomInt(0, 9)) + String(getRandomInt(0, 9)) + String(getRandomInt(0, 9));
document.write(pass);
document.getElementById('<%= OtpHiddenField.ClientID %>').value = pass;
</script>
</asp:Content>
我希望您知道這種方法非常非常脆弱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.