1

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

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

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

4

3 回答 3

0

您应该使用文档.getElementById('myCC').setAttribute( 'value' , 'other value');

并且不使用属性“attr”。

检查这个jsfiddle:

http://jsfiddle.net/wkJck/

于 2012-10-16T13:56:35.010 回答
0

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

例如:

组件定义

    <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' ;

阅读官方文档中的完整示例

于 2012-10-16T14:05:15.827 回答
0

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

<c:MyComponent id="myCC" />

<script>
    jQuery("[id$=myCC]").hide();
</script>
于 2012-10-16T17:58:28.223 回答