从javascript动态更改自定义组件属性值

时间:2012-10-16 13:51:41

标签: javascript salesforce apex-code visualforce

我的visualforce页面中有一个自定义组件,它需要一个属性:

<c:myCustomComponent id="myCC" attr='Some value'></c:myCustomComponent>

我想从javascript动态更改属性值。 我尝试getElementById('myCC').setAttribute('other value'),但它似乎不起作用,并且DOM没有自定义组件ID的引用。

3 个答案:

答案 0 :(得分:0)

您应该使用文档 .getElementById('myCC')。setAttribute('value','其他值');

并且不使用属性'attr'。

检查这个jsfiddle:

http://jsfiddle.net/wkJck/

答案 1 :(得分:0)

您必须首先定义您的值属性,然后您可以通过javascript访问和更改它。

e.g。 :

组件定义               

    <apex:attribute name="myValue" description="This is the value for the component."  type="String" required="true"/>

通过 visualforce

访问价值
<c:myComponent myValue="Some value" id="myCC"/>

通过 javascript

访问和更改
document.getElementById('myCC').value ='other value' ;

阅读official doc

中的完整示例

答案 2 :(得分:0)

您无法使用您输入的ID直接使用javascript访问visualforce元素,因为生成的dom元素的真实ID看起来不同。 我使用jquery,这很容易:

<c:MyComponent id="myCC" />

<script>
    jQuery("[id$=myCC]").hide();
</script>