Javascript 从json响应中禁用按钮
代码笔在这里: 尝试在提交时通过jquery禁用按钮 我正在模拟ajax响应 按钮未禁用,但按钮上的值更改为“禁用” 我试过:Javascript 从json响应中禁用按钮,javascript,jquery,twitter-bootstrap-3,Javascript,Jquery,Twitter Bootstrap 3,代码笔在这里: 尝试在提交时通过jquery禁用按钮 我正在模拟ajax响应 按钮未禁用,但按钮上的值更改为“禁用” 我试过: ($d).button('disable'); ($d).prop( "disabled", true ); 我哪里做错了 html: 下面是更正后的javascript。。。 感谢@pranin shakya提供了问题的答案 changing this line: if ($d.is(':input')) { to this line: if (($d.is(':
($d).button('disable');
($d).prop( "disabled", true );
我哪里做错了
html:
下面是更正后的javascript。。。
感谢@pranin shakya提供了问题的答案
changing this line:
if ($d.is(':input')) {
to this line:
if (($d.is(':input')) && (!$d.is(':submit')))
将“提交”按钮从作为输入的评估中排除
$(function () {
var obj2 = {
"arBidAmount_7101" : {
"value" : "500.00"
},
"rbbutton" : {
"disable" : "true"
}
};
$("#rbconfirm").submit(function(e){
console.log(obj2);
$.each(obj2, function(i, item) {
var d = i;
var $d = $('#' + i);
if ($d.length !== 0) {
$.each(item,function(i,item) {
if (($d.is(':input')) && (!$d.is(':submit')))
{
($d).val(item);
}
else if (i=='disable') {
$($d).prop( "disabled", true );
}
else if (i=='value') {
($d)[0].innerHTML = item;
}
else{
if (typeof console == "object") {
console.log('notinput '+ i + d);
}
}
});
} else {
if (typeof console == "object") {
console.log(i + 'notfound');
}
}
});
e.preventDefault();
});
});
基本概念
你可以做这件事,因为它是基本的:
$("some sort of selector").prop("disabled", true | false);
$("some sort of selector").button("enable" | "disable");
($d).prop("disabled", true);
($d).button('disable');
如果您使用的是jQuery UI样式的按钮,则应通过以下方式启用/禁用它:
$("some sort of selector").prop("disabled", true | false);
$("some sort of selector").button("enable" | "disable");
($d).prop("disabled", true);
($d).button('disable');
了解更多
因此,在代码中实现这一点:
您可以这样做:
$("some sort of selector").prop("disabled", true | false);
$("some sort of selector").button("enable" | "disable");
($d).prop("disabled", true);
($d).button('disable');
或:
$("some sort of selector").prop("disabled", true | false);
$("some sort of selector").button("enable" | "disable");
($d).prop("disabled", true);
($d).button('disable');
这里有一个例子
下面是stackoverflow的一个很好的代码示例!:
$('.rbutton')。在('click',function()上{
$(this.prop(“disabled”,true);
});代码>
单击“我”
在检查是否为(:输入)
后,您可以使用if/else
语句执行i
注意:您需要绕过if/else语句,以便根据需要正确使用它
可以在jquery中使用函数addClass.((如果使用引导)
$(“#yourButton”).addClass(“禁用”) 使用:
if ($d.is(':input')) {
($d).val(item);
if (i=='disable') {
$($d).attr( "disabled", "disabled" );
}
}
您的代码运行不正常,因为您的逻辑与联机逻辑相矛盾
--如果($d.is(':input')){--
由于submit按钮也是INPUT类型,因此它将返回true,即您包含的else语句
--($d).prop(“disabled”,true)--永远不会执行。@Mohamed Yousef,$($d).prop(“disabled”,true);和$d.prop(“disabled”,true);仍然将值更改为disable,但不要禁用按钮..抱歉,我的错..如果我将obj2中的元素更改为“'rbbutton”:{“disable”:“true”},按钮被更改为true。因此,它读取单词disable,但以=='value'@Mohamed Yousef的形式执行,问题似乎出在以下行:'if($d.is(':input'))’。这个按钮是一个输入,所以它同时执行这两个操作……我如何更改该行,使它只在实际输入上执行,而不包括按钮这是一个引导按钮,我正在执行($d).prop(“disabled”,true);@BrianWolfsohn我用snippet编辑了底部的anwser。这有帮助吗?没有……请看我对这个问题的评论……问题在一行:“if($d.is(':input'))”是正确的……但是,这是一个更大的if-else语句的一部分……现在的问题是如何更改单行“if($d.is(':input'))'排除按钮..您的想法仍然会将按钮的值更改为“disabled”或“true”。您可以使用类似if($d.is(':submit')==false){}的内容仅排除提交按钮。参考: