我想要一个脚本来验证名为“电子邮件”的字段是否不为空。我创建了一个脚本,并将其放入 SCRIPTS 文件夹中。但是,当我们单击“创建”按钮时,不会触发任何内容。知道这有什么问题吗?谢谢
ValidationEmail.js
$(function () {
$("SubmitBTNCreate").click, function (e) {
var email = $("#Email").val();
if (email == "") {
e.preventDefault();
alert("Please enter an email address.");
}
});
});
创建.cshmtl
@model codefirst.Models.Personne
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Personne</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Nom)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Nom)
@Html.ValidationMessageFor(model => model.Nom)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Prenom)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Prenom)
@Html.ValidationMessageFor(model => model.Prenom)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email) <== field to check if empty
</div>
<p>
<input type="submit" value="Create" id="SubmitBTNCreate" /> <== btn submit
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/ValidationEmail") <== calling the script
}
最佳答案
您的代码有语法错误,缺少 # 并且点击绑定(bind)错误:
$("SubmitBTNCreate").click, function (e) {
我会将其重写为:
$(function () {
$("#SubmitBTNCreate").click(function(e) {
// use preventDefault() at top
e.preventDefault();
var email = $("#Email").val();
// asking with shorter format works and looks better
if (!email) {
alert("Please enter an email address.");
return false;
}
// no errors, submit form by id you give it
$("#yourFormId").submit();
});
});
编辑:
包含问题可能会通过以下方式解决:
<script src="@Url.Content("~/Scripts/ValidationEmail.js")"></script>
关于javascript - 提交操作单击时,脚本未触发提交按钮消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326266/