【发布时间】:2018-07-18 22:17:17
【问题描述】:
好的,所以让我们把它排除在我已经引用过其他几个问题的地方,看看它们是否可以帮助我,所以请不要因为可能的重复而打扰我,除非你 100% 确定重复可以帮助我,谢谢。
我有一个表单,它有 2 个密码输入字段和一个提交按钮(等等)。我正在尝试触发
validate() 函数onsubmit,但由于某种原因,该脚本无法正常工作。我错过或忽略了什么?
validate() 函数应该简单地检查两个密码字段是否相同,如果是:提交表单,如果不是:不提交和alert("passwords do not match");
@using (Html.BeginForm()){ //begin formulier
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h2 style="margin:3% 0 0 0;">Nieuwe medewerker Registreren</h2>
<div style="float:right; margin:-3% 0 0 0;">
@Html.ActionLink("Back to List", "Index")
<input type="submit" value="Create" class="btn btn-default createBtn" onsubmit="return validate();" />
</div>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="col-md-6">
<h4>Persoonlijke gegevens</h4><!--Begin Persoonlijke gegevens-->
<div class="form-group">
<p class="control-label col-md-5"><i class="fa fa-exclamation-triangle triangle" aria-hidden="true"></i> <b>wachtwoord</b></p>
<div class="col-md-4">
<input type="password" id="passphrase" class="form-control" required="required" />
</div>
</div>
<div class="form-group">
<p class="control-label col-md-5"><i class="fa fa-exclamation-triangle triangle" aria-hidden="true"></i> <b>wachtwoord</b></p>
<div class="col-md-4">
@Html.EditorFor(model => model.wachtwoord, new { htmlAttributes = new { id = "passphraseConf", @class = "form-control", required = "required", type = "password" } })
@Html.ValidationMessageFor(model => model.wachtwoord, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
} <!--Einde formulier-->
如果您想查看完整页面,为了保持简短,我删除了不必要的输入; click here。 注意:我在 asp.net 中使用数据库,所以如果你运行 jsfiddle,页面会看起来很奇怪。
我已经尝试了几个 jquery 脚本,但这两个对我来说最有意义的是它们应该可以工作;
1:
function validate() {
alert("validating");
var password = $("#passphrase").val();
var confirmPassword = $("#passphraseConf").val();
return (password === confirmPassword)
}
2:
function validate() {
alert("validating");
var password = $("#passphrase").val();
var confirmPassword = $("#passphraseConf").val();
if (password === confirmPassword) {
return (true);
alert("passwords valid");
} else {
return (false);
alert('De wachtwoord velden komen niet overeen.');
}
}
但是当我按下提交按钮时,脚本都不起作用。警报甚至不会触发,我不明白为什么。
其他信息:
jQuery 版本:3.3.1
提前致谢。
【问题讨论】:
-
你为什么不只使用
[Compare]属性和MVC 的内置验证,它将为你提供客户端和服务器端验证 -
因为我什至不知道它存在 :D
-
Client Side Password and Confirm Password validation in ASP.Net MVC using Data Annotations and jQuery(手动执行此操作很疯狂,任何人都可以绕过该脚本 - 您必须始终在服务器上验证)
-
谢谢,我会调查的!
标签: jquery html forms razor asp.net-mvc-5