Javascript Ajax MVC在表格行中隐藏按钮
我在表中有一个dropdownlist和按钮,它应该显示数据库中是否有值。在我的下拉列表中,我发送到一个函数Javascript Ajax MVC在表格行中隐藏按钮,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我在表中有一个dropdownlist和按钮,它应该显示数据库中是否有值。在我的下拉列表中,我发送到一个函数 onchange = "getInfoid(this)" 职能: function getInfoid(myvalue) { var typeid = $(myvalue).val(); $.ajax({ url: '/mycontroller/GetInfoUrl', contentType: 'appl
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();
}
这就解决了问题。谢谢大家的帮助。jqXHR.success和jqXHR.error不推荐使用。阅读api jqXHR.donefunction数据,textStatus,jqXHR{};替代方案 构造成功回调选项,.done方法替换 不推荐使用的jqXHR.success方法。有关详细信息,请参阅deferred.done 实施细节 jqXHR.failfunction jqXHR,textStatus,error抛出{};一 错误回调选项的替代构造.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();
});
不知道你在问什么或者你的问题是什么好的,我编辑了这个问题。脚本不会显示或隐藏按钮。谢谢您可能需要查看控制台以查看是否有任何错误。页面中只有一个元素具有该ID。ID的定义必须是唯一的,所以这可能是您的问题$Details0.hide应该在只有一个ID的情况下工作。否则,使用类而不是IDI尝试使用唯一ID,但它不工作。谢谢