Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MVC 4 ASP.Net表单提交()函数不起作用_Javascript_Jquery_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Javascript MVC 4 ASP.Net表单提交()函数不起作用

Javascript MVC 4 ASP.Net表单提交()函数不起作用,javascript,jquery,asp.net,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我正在尝试使用下面的方法获得一个登录表单。我使用的是JQuery版本1.11.2和MVC4。问题似乎来自这一行代码 <input type="button" onclick="getPasswordHash('password', 'nonce', 'hash'); $('#loginForm').submit(function (event) { event.preventDefault(); alert('Submitting f

我正在尝试使用下面的方法获得一个登录表单。我使用的是JQuery版本1.11.2和MVC4。问题似乎来自这一行代码

    <input type="button" onclick="getPasswordHash('password', 'nonce',     'hash');
    $('#loginForm').submit(function (event) {
        event.preventDefault();
        alert('Submitting form.. Please wait');
        return true;
    })" value = "Login"  />
问题是,当我按Login时,什么也没有发生。页面不会刷新。它的行为就像我没有点击任何东西一样

编辑:我现在已经检查了Chrome开发者工具中的源代码。它告诉我未捕获的引用错误:未定义getPasswordHash


提前感谢。

您需要一个包含用户的数据库。要创建数据库,请打开manager控制台并键入
启用迁移-ContextTypeName[ContextClassName]
这将创建一个迁移文件夹,然后您需要在登录之前注册一个用户


编辑:确保您在帐户控制器内部有登录功能

,这是因为您在使用
event.preventDefault()时告诉提交事件不要执行其默认行为(即提交)。将其放回.submit()仍不起作用问题在于使用preventDefault。我不知道你在这一点上改变了什么,请编辑你的问题以反映你的最新版本。好的,请给我一秒钟。我已经更新了FORM中的最后一行输入代码。我确定这不是你的最终数据库布局,只是概念证明,但你的数据库中不应该有纯文本密码。话虽如此,您的后端代码似乎正在查找密码的哈希版本。您试过调试函数getPasswordHash(passwordElement,NonceeElement,hashElement)
以查看其返回的内容吗是的,这只是一个概念证明。我确实尝试过调试,但显然它甚至没有进入函数。我试图更改type=“submit”而不是type=“button”,它会将我重定向回没有管理员访问权限的帖子。这证明了输入命令只到达类型,而完全忽略了onclick函数
@model string

@{
    ViewBag.Title = "Login";
}

@section ExtraHeaders
{
    <script src="@Url.Content("~/Scripts/Login.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/sha256.js")" type="text/javascript"></script>

}

<form action="@Href("~/Accounts/Login")" method="post" id="loginForm">
    <input type="text" name="name" id="name"/> Name <br/>
    <input type="password" name="password" id="password"/> Password <br/>
    <input type="hidden" name="nonce" id="nonce" value="@Model"/>
    <input type="hidden" name="hash" id="hash" value="hash"/>
    <input type="button" onclick="getPasswordHash('password', 'nonce', 'hash');
$('#loginForm').submit()" value = "Login"  />

</form>
function getPasswordHash(passwordElement, nonceElement, hashElement)
{
    var password = $('#' + passwordElement).attr('value');
    var nonce = $('#' + nonceElement).attr('value');
    $('#' + hashElement).attr('value', $.sha256(password + nonce));
    $('#' + passwordElement).attr('value', '');
}