【问题标题】:Button Click does not fire JQuery Function按钮单击不会触发 JQuery 函数
【发布时间】:2016-10-25 23:33:31
【问题描述】:

我的控制器有 actionresult:-

    [HttpPost]
    [LogInFilter]
    public JsonResult MemberCreate(GarhwalBhawan.Models.MemberTbl Mem) // Record Insert  
    {
        if (ModelState.IsValid)
        {
            db.MemberTbls.Add(Mem);
            db.SaveChanges();
            return Json(Mem, JsonRequestBehavior.AllowGet);
        }
        return Json(Mem, JsonRequestBehavior.AllowGet);
    }    

    [HttpGet]
    [LogInFilter]
    public PartialViewResult MemberCreate()   //Insert PartialView  
    {
        return PartialView(new GarhwalBhawan.Models.MemberTbl());
    }

在我的视图中,我创建了一个表单,单击按钮时,我将 json 函数调用为:-

 <fieldset>
        <legend></legend>

        <div class="editor-label">
            Member Name
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>

        <div class="editor-label">
            Member Post
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Post)
            @Html.ValidationMessageFor(model => model.Post)
        </div>

        <div class="editor-label">
            Member Phone
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Phone)
            @Html.ValidationMessageFor(model => model.Phone)
        </div>

        <p>
            <input id="memberSave" type="button" value="Create"  />
        </p>
    </fieldset>
}

MemberSave as 的脚本函数:-

@section Scripts {

<script type="text/javascript">

   $(document).ready(function() {
  $("#memberSave").click(function()  {
        var Name = $("#Name").val();
        var Post = $("#Post").val();
        var Phone = $("#Phone").val();

        var Member = {
            "Name": Name, "Post": Post,
            "Phone": Phone
        });

        $.post("/Admin/MemberCreate", Member,
        function (data) { if (data == 0) { location = location.href; } }, 'json');
    });
</script>
}

问题是点击创建按钮时它没有触发任何 JQuery 的点击事件。

请帮忙。

【问题讨论】:

  • 改用适当的事件处理程序
  • 您是否将脚本部分加载到母版页中?
  • 是的,布局页面。

标签: jquery html forms asp.net-mvc-4


【解决方案1】:

好吧,你把它标记为 jquery,那么为什么不使用 jquery 来附加处理程序呢?

<input type="button" id="member_save" value="Create"  />

<script>


$(document).ready(function(){ 
    $('#member_save').on('click', function(){ 
       //your code here
     });

});

</script>

【讨论】:

  • $(document).ready(function () { $('#memberSave').on('click ',function MemberSave() { var Name = $("#Name").val(); var Post = $("#Post").val(); var Phone = $("#Phone").val( ); var Member = { "Name": Name, "Post": Post, "Phone": Phone }; $.post("/Admin/MemberCreate", Member, function (data) { if (data == 0) { location = location.href; } }, 'json'); }); });还是什么都没发生
  • $(document).ready(function () { $('#memberSave').on('click ',function MemberSave() { var Name = $("#Name").val(); var Post = $("#Post").val(); var Phone = $("#Phone").val( ); var Member = { "Name": Name, "Post": Post, "Phone": Phone }; $.post("/Admin/MemberCreate", Member, function (data) { if (data == 0) { location = location.href; } }, 'json'); }); });还是什么都没发生
  • 有一个警告:- 主线程上的同步 XMLHttpRequest 已被弃用,因为它对最终用户的体验产生不利影响。如需更多帮助,请查看xhr.spec.whatwg.org/.send@jquery-1.10.2.js:8686。我不知道这是什么。
  • 我在上面修改了我的问题。根据您建议的更改。
  • 是的,我已经添加到共享文件夹下的_Layout页面中了。
【解决方案2】:

您可以通过这种方式将id添加到按钮并单击该id的事件。

$(document).ready(function() {
      $("#myButton").click(function() {
        alert("button clicked.");
        //do ajax post here
      });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myButton" type="button" value="Create" />

【讨论】:

  • 当我将代码更改为:-
    $(document).ready(function () { $('#memberSave').on('click',function MemberSave( ) { var Name = $("#Name").val(); var Post = $("#Post").val(); var Phone = $("#Phone").val(); var Member = { "Name": 姓名, "Post": Post, "Phone": Phone }; $.post("/Admin/MemberCreate", Member, function (data) { if (data == 0) { location = location. href; } }, 'json'); }); });
  • 什么都没发生是什么意思?您更改了按钮代码吗?
  • 看看这个};)};你是如何管理它的......然后你告诉我们什么都没发生,当然会发生,至少看到你的控制台错误
  • 是的,我在这里错过了。但在代码中它被妥善管理。我没有为此出错。只有警告如下:- 不推荐使用主线程上的同步 XMLHttpRequest,因为它对最终用户的体验产生不利影响。如需更多帮助,请查看 xhr.spec.whatwg.org/.send @ jquery-1.10.2.js:8686。
  • 那么你应该在这里添加托管代码!并在按钮单击和检查时发出警报。会弹出警报吗?
【解决方案3】:

请正确关闭括号..

    @section Scripts {

    <script type="text/javascript">

       $(document).ready(function() {
      $("#myButton").click(function()  {
            var Name = $("#Name").val();
            var Post = $("#Post").val();
            var Phone = $("#Phone").val();

            var Member = {
                "Name": Name, "Post": Post,
                "Phone": Phone
            };)};

            $.post("/Admin/MemberCreate", Member,
            function (data) { if (data == 0) { location = location.href; } }, 'json');
});
</script>
    }

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2017-12-08
    • 2016-02-26
    相关资源
    最近更新 更多