私はタブ付きパネルを使用するstruts2プロジェクトを持っています。タブはdiv内のjspページです。最初にタブを選択すると、ページの最後にあるjavascriptが目的の入力フィールドに焦点を合わせます。入力欄にフォーカスがない状態でタブが戻ってきても、サブミットしてしまうと、 私は何が起こっているかを見るためにそれを広範囲にデバッグしました、そして、私はページの最後のjavascriptが動いていることに気付きましたが、ただフィールドに集中することができません。 getElementByIdを介してフィールドを見ることができ、値を取得することもできます(私はアラートでこれをテストしました)が、フィールドには何もできません。いずれかのJavaScriptを介してテキストを配置することはできません。別のタブをクリックしてスクリプトをクリックすると、フォーカスが復元されます。投稿後にstuts2 divのフォームタグにフォーカスできません
タブに提出し、テキストフィールドは以下の通りです:
<s:form id="myForm" action="myTabAction.do" method="post" validate="true" >
.
.
.
<s:submit name="submitz" value="Save" id="billbo"
formId="myForm" executeScripts="true"
href="myTabAction.do?submit=Save"
targets="myTab" showLoadingText="false"
theme="ajax" cssClass="buttonSmallClass"
indicator="loadingImage_case" />
.
.
.
<s:textfield name="testVal" maxlength="80" id="textField" cssClass="textClass" />
javascriptのタブJSPの最後に次のようにされています。親ページの関連部分はある
.
.
.
</s:form>
</table>
<script type="text/javascript">
var field = document.getElementById("textField");
field.focus();
</script>
</body>
</html>
:
<s:tabbedPanel selectedTab="%{selectedTabId2}"
id="CasePartyTabbedPanel" theme="ajax" requiredposition="left"
cssClass="subTabedpanelClass" cssStyle="width: 710px; height: 200px;" doLayout="false"
templateCssPath="includes/TabContainer.css">
.
.
.
<s:div label="My Label" id="myTab"
href="MyAction.do?param1=%{paramVal1}¶m2=%{paramVal2}"
theme="ajax" cssStyle="display:none" refreshOnShow="true"
executeScripts="true" >
<p>Loading...
</s:div>
</s:tabbedPanel></td>
私はstruts 2.0.9とdojoを使用しています。
私は実際に送信後に入力フィールドにフォーカスを設定する方法を見つける必要があります。 ご協力いただければ幸いです。申し訳ありませんが、それは少し長い風が、私は明確になりたかった。
ビル
おかげを使用し、私はそれを試してみましたが、コードは実行されません。 – billby
どのようなエラーが表示されますか? dojo.jsはあなたのページに含まれていますか? – Dandy
どこにいても表示されるエラーはありません。それはただ静かに失敗します。私はそれをデバッグする方法を見つける必要があると思う。このページには特にdojo.jsはありません。これはstrutsパッケージの一部として含まれていると思います。 dojo.byIdはうまく動作するので、確かにそこにあります。 – billby