【问题标题】:Ajax MVC hide button in a table rowAjax MVC 在表格行中隐藏按钮
【发布时间】:2015-02-18 01:29:13
【问题描述】:

我在表格和按钮中有一个下拉列表,应该显示数据库中是否有值。在我的下拉列表中,我发送到一个函数

onchange = "getInfoid(this)"

功能:

function getInfoid(myvalue) {
        var typeid = $(myvalue).val();
        $.ajax({
            url: '/mycontroller/GetInfoUrl',
            contentType: 'application/html; charset=utf-8',
            type: 'Get',
            data: {
                id: typeid
            },
            dataType: 'html'
        })
            .success(function (result) {
                var tr = $($(myvalue).parents("tr")[0]);
                var button = tr.find("button#Details0");
                $(button).attr("onclick", "viewOhaInfo('" + result + "')");
                $(button).show();
            })
            .error(function (result) {
             var tr = $($(myvalue).parents("tr")[0]);
             tr.find("button#Details0").hide();
            });
    };

脚本不显示或隐藏按钮。测试它;我尝试了 Ajax 脚本来显示和隐藏一个 div,并尝试在没有 Ajax 的情况下使用相同的方法隐藏和显示表格中的按钮,两者都有效。我是否丢失了 myvalue 变量的值或其他原因。

编辑 问题在于我对成功和错误的理解,我将脚本更改为:

 .success(function (data) {
               if (data == null) {
                   var tr = $($(myvalue).parents("tr")[0]);
                   tr.find("button#Details0").hide();
               } else {

                   var tr = $($(myvalue).parents("tr")[0]);
                   var button = tr.find("button#Details0");
                   $(button).attr("onclick", "viewOhaInfo('" + data + "')");
                   $(button).show();
               }

这解决了它。谢谢大家的帮助。

【问题讨论】:

  • 不知道你在问什么或你的问题是什么
  • 好点,我编辑了这个问题。该脚本不显示或隐藏该按钮。谢谢
  • 你可能需要查看控制台看看是否有任何错误
  • 只能是页面中具有该 ID 的一个元素。根据定义,ID 必须是唯一的,所以这可能是您的问题。 $("#Details0").hide() 应该在只有一个 ID 时工作。否则使用类而不是 ID
  • 我尝试了唯一 ID,但它不起作用。谢谢

标签: javascript jquery ajax asp.net-mvc


【解决方案1】:

jqXHR.success() 和 jqXHR.error() 已弃用。阅读apidocs

jqXHR.done(function(data, textStatus, jqXHR) {});替代 构造成功回调选项, .done() 方法替换 已弃用的 jqXHR.success() 方法。请参阅 deferred.done() 了解 实现细节。

jqXHR.fail(function(jqXHR, textStatus, errorThrown) {});一个 错误回调选项的替代构造,.fail() 方法 替换已弃用的 .error() 方法。请参阅 deferred.fail() 了解 实现细节。

所以修改你的脚本:

$.ajax({
        url: '/mycontroller/GetInfoUrl',
        contentType: 'application/html; charset=utf-8',
        type: 'Get',
        data: {
            id: typeid
        },
        dataType: 'html'
    })
        .done(function (result) {
            var tr = $($(myvalue).parents("tr")[0]);
            var button = tr.find("button#Details0");
            $(button).attr("onclick", "viewOhaInfo('" + result + "')");
            $(button).show();
        })
        .fail(function (jqXHR, textStatus) {
         var tr = $($(myvalue).parents("tr")[0]);
         tr.find("button#Details0").hide();
        });

Here 是怎么做的。

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2013-12-06
    • 1970-01-01
    相关资源
    最近更新 更多