jQuery Click Event CheckBox更改了Ajax调用

时间:2016-03-22 18:01:35

标签: javascript jquery ajax asp.net-mvc-5

我有三个复选框,它们已检查/取消选中从模型填充的值。我在按钮点击事件中使用Ajax帖子为每个复选框更改事件调用控制器操作以更新数据库。

以下是其中一个复选框的代码(除了选择器ID,它们都是相同的):

 $(document).ready(function () {

    //document.getElementById('UpdateButton').onclick = function () {
    $("UpdateButton").click = function () {
        $('#NatAm').change(function () {
            // if ($('#NatAm').is(':checked')) {
            $.ajax({
                //url: '@Url.Action("NativeUpdate", "Transactions")',
                    url: '/Transactions/NativeUpdate',
                    //data: { isNativeUp: true },

                    type: 'POST',
                    dataType: "json"
                });
                //}
            });

编辑(HTML /查看代码):

 @Html.CheckBox("NatAm", (bool)@ViewBag.NativeAm)
 <input name="UpdateButton" id="UpdateButton" type="submit" value="Update" style="margin-left: 15px; margin-top: 3px;" class="btn btn-success" />

我无法让这个工作。在添加按钮之前,ajax帖子工作正常。谢谢你的帮助!

3 个答案:

答案 0 :(得分:2)

您的点击处理程序不对。您需要传入按钮的id并使用jQuery单击处理程序。您还不需要嵌套处理程序:

1
2
3
4
5 

JSFiddle演示:https://jsfiddle.net/vLzwuwdo/

答案 1 :(得分:2)

你告诉JQuery要查找“UpdateButton”标签,在你的情况下这些标签不存在。您错过了#,表示按钮中的ID。

试试这个

$(document).ready(function () {

//document.getElementById('UpdateButton').onclick = function () {
$("#UpdateButton").click(function () {
    $('#NatAm').change(function () {
        // if ($('#NatAm').is(':checked')) {
        $.ajax({
            //url: '@Url.Action("NativeUpdate", "Transactions")',
                url: '/Transactions/NativeUpdate',
                //data: { isNativeUp: true },

                type: 'POST',
                dataType: "json"
            });
            //}
        }));

答案 2 :(得分:1)

  1. <?php foreach ($items as $v) { $status = $v->acf['c_status']; $status_name = get_term_by('id', $status, 'type'); ?> <?php if ($status_name) { ?> <div class="sb-sidebar-featured-type"> <?php $title_status = $status_name->name; $status = explode(' ', $title_status); ?> <div class="sidebar-featured-transaction"><?=($status_name) ? $status[0] : '';?></div> </div> <?php } ?> 在同一文档(idNatAm)中应该是唯一的,用全局类替换重复的文件将解决第一个问题。

  2. 您不应该在另一个内部定义事件,因为每次触发第一个事件时它都会为元素创建新事件,在您的情况下,每次单击新的更改事件时都会创建并附加到第一个元素{ {1}}。

  3. 希望这有帮助。