Javascript 从json响应中禁用按钮

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(':

代码笔在这里:

尝试在提交时通过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(':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){}的内容仅排除提交按钮。参考: