javascript - 提交操作单击时,脚本未触发提交按钮消息

标签 javascript asp.net-mvc c#-4.0 razor

我想要一个脚本来验证名为“电子邮件”的字段是否不为空。我创建了一个脚本,并将其放入 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/

相关文章:

c# - 如何阻止 oracledatareader 读取

javascript - JavaScript中如何获取域名的 "meaningful"节点?

javascript - JavaScript 中的 DOM 和 BOM 是什么?

javascript - 如何使用foreach生成的输入进行计算?

visual-studio - 如何将 Visual Studio 2013 更新 4 升级到更新 5?

c# - 选中列表框的选中项不起作用

javascript - 为什么图像不占据页面的整个高度?

c# - 将对象集合添加到另一个集合

asp.net-mvc - MVC数据标注层: where to put the set CurrentUICulture statement?

asp.net-mvc - MVC5登录到自定义数据库