
[英]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.