Codepen在这里:http://codepen.io/bwolfsohn/pen/jWVZwX
尝试在提交时通过jquery禁用按钮。
我正在模拟ajax响应。
该按钮未被禁用,但按钮上的值更改为"已禁用"。
我试过了:
($d).button('disable');
($d).prop( "disabled", true );
我哪里错了?
HTML:
<form class="form-inline bidding" id="rbconfirm" name="IamBidding" action="#">
<input id="arBidAmount_7101" type="text" name="aBidAmount_7101" value="450.00">
<input id="rbbutton" class="btn btn-success" type="submit" value="Bid Now">
的jquery / JS
$(function () {
var obj2 = {
"arBidAmount_7101" : {
"value" : "500.00"
},
"rbbutton" : {
"disable" : "disabled"
}
};
$("#rbconfirm").submit(function(e){
$.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).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();
});
});
这是更正后的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();
});
});
答案 0 :(得分:0)
你可以做到这一点非常基本:
$("some sort of selector").prop("disabled", true | false);
如果您使用的是jQuery UI样式按钮,则应通过以下方式启用/禁用该按钮:
$("some sort of selector").button("enable" | "disable");
了解详情here!
($d).button('disable');
您可以这样做:
($d).prop("disabled", true);
或强>
($d).button('disable');
这是stackoverflow的一个很好的代码示例!:
$('.rbutton').on('click',function() {
$(this).prop("disabled",true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button class="rbutton">Click me</button>
答案 1 :(得分:0)
您可以在检查if/else
i
语句is(:input)
if ($d.is(':input')) {
$($d).val(item);
if (i=='disable') {
console.log(d);
console.log($d);
// ($d).button('disable');
$d.prop( "disabled", true );
}
if (i=='value') {
//console.log($d);
// console.log( ($d)[0].innerHTML );
$($d)[0].innerHTML = item;
// console.log( ($d)[0].innerHTML );
}
}else{
if (typeof console == "object") {
console.log('notinput '+ i + d);
}
}
注意:您需要解决if / else语句才能满足您的需求
答案 2 :(得分:0)
你可以在jquery中使用addClass。()函数(如果你使用bootstrap)
$(&#34;#yourButton&#34)addClass(&#34;禁用&#34);
答案 3 :(得分:0)
使用:
if ($d.is(':input')) {
($d).val(item);
if (i=='disable') {
$($d).attr( "disabled", "disabled" );
}
}
由于您的逻辑与行
相矛盾,您的代码无法正常运行- if($ d.is(&#39;:input&#39;)){ -
由于提交按钮也是INPUT类型,因此它将返回true,即包含的else语句
- ($ d).prop(&#34;禁用&#34;,true) - 永远不会执行。