我的 visualforce 页面中有一个自定义组件,它需要一个属性:
<c:myCustomComponent id="myCC" attr='Some value'></c:myCustomComponent>
我想从javascript动态更改属性值。我试过 getElementById('myCC').setAttribute('other value')
了,但它似乎不起作用,并且 DOM 没有自定义组件 ID 的引用。
我的 visualforce 页面中有一个自定义组件,它需要一个属性:
<c:myCustomComponent id="myCC" attr='Some value'></c:myCustomComponent>
我想从javascript动态更改属性值。我试过 getElementById('myCC').setAttribute('other value')
了,但它似乎不起作用,并且 DOM 没有自定义组件 ID 的引用。
您应该使用文档.getElementById('myCC').setAttribute( 'value' , 'other value');
并且不使用属性“attr”。
检查这个jsfiddle:
您必须首先定义您的 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' ;
阅读官方文档中的完整示例
您无法通过输入的 id 直接使用 javascript 访问 visualforce 元素,因为生成的 dom 元素的真实 id 看起来不同。我为此使用 jquery,这很容易:
<c:MyComponent id="myCC" />
<script>
jQuery("[id$=myCC]").hide();
</script>