问题: 我在VisualForce页面上有一个顶点:commandButton,以及一个带有一些逻辑的js文件。目前,此逻辑使用css影响页面上的按钮是可见还是不可见。我需要更改它,以便启用或禁用按钮。但是,每当我尝试禁用js文件中的按钮时,屏幕上的按钮都不会受到影响。我对前端开发人员没有经验,所以可能会遗漏或误解一些明显的东西。
.page文件上的按钮:
<apex:commandButton id="commitButton"
action="{!commitSelectedLines}"
value="{!$Label.commitSelectedLines}"/>
.js文件(大量编辑到看似相关的位):
FFDCBalancer = (function(){
/**
* Singleton Balancer object to maintain balances on the page.
*/
var balancer = {
/** JQuery button component for the commit button. */
cmdCommit: undefined,
/** Set the enabled-ness of the commit button. */
setCommitEnabled : function(value) {
//I PRESUMABLY NEED TO CHANGE THIS BIT TO USE 'DISABLED'.
this.cmdCommit.css({
'display': value ? 'block' : 'none'
});
//I HAVE TRIED VARIOUS BITS OF CODE, SUCH AS THIS
//this.cmdCommit.disabled = value;
},
/**
* Respond to refresh by connecting event handlers and calculating the balances.
*/
onRefresh : function () {
var me = this;
me.cmdCommit = $FFDC('#commitButton');
}
};
$FFDC(document).on('FFDCRefresh', function(){ balancer.onRefresh(); });
return balancer;
}());
答案 0 :(得分:0)
为此,您可以执行以下两项操作之一:
使用{!$ Component ... commitButton}获取客户端ID,虽然它可以真正搞乱JQuery,因为它在ID之间添加冒号,所以你必须使用它与document.getElementById(...)结合使用 - 例如:
jQuery(document.getElementById('{!$Component.Form.commitButton}')).attr('disabled','disabled');
在按钮上放置一个“styleClass”,并使用以下内容进行更改:
<apex:commandButton id="commitButton"
action="{!commitSelectedLines}"
value="{!$Label.commitSelectedLines}" styleClass="commitButtonClass" />
然后使用jQuery设置属性:
jQuery(".commitButtonClass").attr('disabled','disabled');