我如何在jquery中表示document.getElementById('page1:form2:amount')?

时间:2011-02-11 07:03:33

标签: jquery salesforce visualforce

我如何表示

document.getElementById('page1:form2:amount')
中的

我知道我可以使用

$('#amount')

访问ID金额。 id量是<apex:inputText/>类型,它是在Visualforce页面中表示输入文本的方式。要访问此ID,我需要使用page-&gt; form-&gt; id。

的层次结构

由于

Prady

更新:Visualforce页面中使用的代码。

<apex:page controller="acontroller" id="page1">
  <apex:form id="form2">
    <apex:inputText value="{!amt}" id="amount" onchange="calenddate();"/>
  </apex:form>
</apex:page>

3 个答案:

答案 0 :(得分:2)

我知道它有点晚了,但另一种方法是使用jQuery属性以选择器结束(http://api.jquery.com/attribute-ends-with-selector/).

您知道放在顶点代码中的ID始终是生成的ID中的最后一个。所以你可以做jQuery('[id$="amount"]')

这样做是选择id属性的以amount结尾的部分(你需要确定没有其他字段以这种方式结束)。

过去这对我来说非常合适。

答案 1 :(得分:1)

你可以做的是获取表单实例并找到所有输入类型文本(不是必需的)并从实例中获取id属性

<form id="myform">
        <input type="text" value="hello1" id="1">
            <input type="text" value="hello2" id="2">
            <input type="text" value="hello3" id="3">
            <input type="text" value="hello4" id="4">
</form>



$('#myform > input[type="text"]').each(function(key,value){
         $(value).attr('id');
})

并且从服务器端代码开始,无论如何它将在客户端转换为标准HTML格式,javascript将仅读取最终的HTML标记。所以去源代码,找到究竟什么是替换,然后在jQuery函数中使用该标记进行搜索

答案 2 :(得分:1)

你可以传递选择器,就好像你用CSS编写它们一样。

$('#page1 #form2 #amount').doSomething(...)

由于jQ中的选择器从右到左工作,它意味着:找到id为#amount的元素,其父元素为id#form2,并确保它们具有父#page1,然后才能执行某些操作。

更多关于jQ选择器@ api.jquery.com