0

私はJavaScriptとFaceletsのページで作業しています.

ここに私のコード:

<h:head>
    <script type="text/javascript">
        function transfer() {
            alert(editor.getMolfile());
            document.getElementById("strMol").value = editor.getMolfile();

            var newVal=document.getElementById("strMol").value;
            alert("new val"+newVal);
        }
    </script>
</h:head>
<h:body>
    <h:form id="searchMoleculeForm">
        <h:inputHidden name="strMol" id="strMol" value="#{search.strMol}" />
        <rich:panel >
            <f:facet name="header">
                Search The Molecule
            </f:facet>
            <center>
                <div id="editor"></div>
            </center>
            <center>
                <h:commandButton value="substructure" action="#{search.subStructure}" onclick="transfer();" />
                <h:commandButton value="exact_similar" action="#{search.exactSearch}" onclick="transfer();" />
                <h:commandButton value="pharmacophore" action="#{search.pharmacore}" onclick="transfer();" />
                <h:commandButton value="shape" action="#{search.shapeSearch}" onclick="transfer();" />
            </center>
        </rich:panel>
    </h:form>
    <script type='text/JavaScript'>
        var editor = chemwriter.loadEditor('editor');
    </script>
</h:body>

それは機能せず、ソースコードを表示すると、次のようなID「strMol」が付いた他のIDが表示されます:

<input id="pbG62d78562_2d4676_2d4b22_2d96b8_2d227d65ceaa9f_j_id1:searchMoleculeForm:strMol" type="hidden"

だから私はそのIDを中に入れました

document.getElementById("pbG62d78562_2d4676_2d4b22_2d96b8_2d227d65ceaa9f_j_id1:searchMoleculeForm:strMol") 

そしてそれは働き始めました..

私の質問は、他の ID id はどこから来るのですか? どうすれば修正できますか?

4

2 に答える 2

0

このリンクを参照して、この問題をすでに解決していますJavascriptで使用できるように、JSFコンポーネントのIDを知るにはどうすればよいですか

私はちょうど置く

 document.getElementById("#{strMol.clientId}").value =  editor.getMolfile();

ここで、タグ内にバインディングを追加します

<h:inputHidden id="strMol" value="#{search.strMol}" binding="#{strMol}" />
于 2013-06-11T06:28:37.213 に答える
-1

<rich:panel>タグが表示されてRichFacesいることから、JSF の実装である を使用していると思います。その ID は、フレームワークによって自動的に生成されます。ここで、その背後にあるロジックについて少し読むことができます。修正は、修正の意味によって異なります。

于 2013-06-10T09:43:04.790 に答える