从javascript到apex代码获取值

从javascript到apex代码获取值,javascript,salesforce,apex-code,Javascript,Salesforce,Apex Code,我需要在visualforce页面的文本字段中从javascript变量获取一个值。 我是用命令按钮得到的。但我想知道是否还有其他方法得到它,cz我不想要一个onclick事件 提前感谢我无法通过您的评论判断您正在收听的是什么事件,但假设您知道会是什么,只需使用document.getElementById()或jQuery中的选择器来获取输入字段。如果您使用的是Apex:inputField,请使用类似“theField”的内容定义id属性。当呈现页面时,Salesforce应该为真正的标记提

我需要在visualforce页面的文本字段中从javascript变量获取一个值。 我是用命令按钮得到的。但我想知道是否还有其他方法得到它,cz我不想要一个onclick事件


提前感谢

我无法通过您的评论判断您正在收听的是什么事件,但假设您知道会是什么,只需使用document.getElementById()或jQuery中的选择器来获取输入字段。如果您使用的是Apex:inputField,请使用类似“theField”的内容定义id属性。当呈现页面时,Salesforce应该为真正的标记提供一个id属性,如“j_id0:j_id1:theField”,但每次查看页面时,这可能会有所不同。这意味着您需要通过子字符串选择输入。下面是一些使用jQuery的示例代码(如果效率低下,请向任何jq大师道歉——请随意改进)


jQuery.noConflict();
jQuery(文档).ready(函数(){
jQuery('input[id*='theInput']).val('helloworld');
});

您可以使用
输入#输入
作为选择器,速度更快,特别是因为jQuery可以使用
查询选择器all
(如果可用)。或者Apex是否包装id?渲染时并非所有VF标记都有包装id,但Apex:inputText有。您仍然需要一个“contains”类型的选择器,如上面的代码所示,它通过子字符串获取选择器。所以你必须让你的身份证与众不同!好的,那么您的选择器就可以了。您可以使用
.val('Hello World')
,不过:)
<apex:page>
    <apex:includeScript value="{!$Resource.jquery_1_6_1}"/>
    <script>
        jQuery.noConflict();
        jQuery(document).ready(function() {
            jQuery('input[id*="theInput"]').val('Hello World');
        });
    </script>
    <apex:form >
        <apex:inputText value="{!phonenum}" id="theInput"/>
    </apex:form>
</apex:page>