ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

Struts-2.2.1.1で画面を作ろうとしています。
他環境はTomcat7、jdk1.6、eclipse3.6.2です。

WEB-INF/libには、struts2-blank.warを解凍した中にあった
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
freemarker-2.3.16.jar
javassist-3.7.ga.jar
ognl-3.0.jar
struts2-core-2.2.1.1.jar
xwork-core-2.2.1.1.jar
を配置しています。

Struts1の初期に少し触った程度でタグライブラリはほとんど知識がありません。


<%@ page pageEncoding="Windows-31J" contentType="text/html; charset=Windows-31J" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<HTML>
<HEAD>
<LINK rel="stylesheet" type="text/css" href="/pj/contents/css/default.css">
</HEAD>

<BODY>
<s:form action="Login" theme="simple" >

<TD class="aaa"><s:textfield key="shozokucd" styleClass="bbb"/></TD>
</s:form>

</BODY>
</HTML>


TDに対してclass指定したスタイルは反映されているのでcss参照は問題ありません。
jsp表示結果では、sタグでinputタグが出力されているのでstruts-tagsも参照できています。

sタグ内でclass指定したい場合、classではなく、styleClassで記述しなければならないところまでは分かったのですが
styleClassにcssのクラス名を指定するだけではスタイルが反映されません。
(jsp表示結果では styleClass="bbb"のまま出力されている。)

StrutsのUIタグの中でstyleClassを指定する場合、cssファイルではなくタグ用に別形式で何か用意しなければいけないのでしょうか。
「Struts スタイルシート」や「Struts styleClass」で検索しても情報が得られませんでした。

初歩的な質問ですが、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

Struts2は殆どさわったことがないので外れているかもしれませんが、


http://struts.apache.org/2.x/textfield.html
を見る限り、「styleClass」という属性はないようですよ。
「cssClass」ではないのでしょうか?
まずは公式リファレンスを確認してみるといいと思いますよ。
自分は英語は全然ダメですが、分からないとことがあるときは見るようにしています。
    • good
    • 0
この回答へのお礼

yamada_gさま

ご回答ありがとうございます!

「styleClass」は検索して見つけたStrutsを説明しているブログと
JakartaのStrutsガイドに書いてあったのを信じこんでいたのですが
Struts1の書き方と違うのですね。
Struts2の公式ページで「styleClass」の説明を検索していましたorz

cssClass="bbb"と書けば、class="bbb"と出力されるんですね。
先ほどfielderror.ftlの中身を見ていて

cssClass
cssStyle

を見つけ、理解しました。

どうにも進められなくて困っていました。
大変助かりました。
本当にありがとうございます。

お礼日時:2011/04/18 12:02

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QStruts:フレーム内JSPからcssファイルの参照方法

htmlタグライブラリのframeで指定したJSPからスタイルシート(*.jsも)の参照ができません。
色々試したのですが、解決方法を教えて下さい。。。
環境はWin2000、Tomcat5、Struts2です。

↓フレーム呼び出し
<frameset rows="50%,*">
<html:frame page="A.jsp"/>
<html:frame page="B.jsp"/>
</frameset>
※ディレクトリ:/apname/jsp/X.jsp

↓フレーム内(A.jsp)
<link rel="stylesheet" href="./C.css" type="text/css"/>
※ディレクトリ:/apname/css/C.jsp

ちなみに「href="../css/C.css"」としてもダメなんです。
参照先ディレクトリは色々試したけど使えません。

よろしくお願いします。

Aベストアンサー

No.1 の方が回答してくれているが別の回答を。

Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。
今回の構成では以下のように書きます。

<link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/>

このように書くと、クライアントでは以下のようなサーバ相対になっています。

<link rel="stylesheet" href="/apname/css/C.css" type="text/css"/>

JSP のタグ解析は HTML のタグとは別に行われるので、上記のように HTML の属性の中に JSP タグを書いても正常に処理されます。

CSS などは、JSP と別フォルダに入れることが多いために相対パスで書いていると JSP ファイルを移動したくなったときに面倒になります。
また、Struts の場合、JSP がおいてある場所と実際の URL の位置関係がアクションの実装の仕方などによっては一致しなくなりますので、「JSP ファイルから見ての相対パス」では正常に解決できなくなることがあります。
このため、サーバ相対に書き直してくれる html:rewrite を使用した方が無難だと思います。

参考URL:http://tag.main.jp/htmlrewrite.html

No.1 の方が回答してくれているが別の回答を。

Struts を使用しているのならば、CSS などへのリンクは html:rewrite で書いた方がやりやすいと思う。
今回の構成では以下のように書きます。

<link rel="stylesheet" href="<html:rewrite page="css/C.css"/>" type="text/css"/>

このように書くと、クライアントでは以下のようなサーバ相対になっています。

<link rel="stylesheet" href="/apname/css/C.css" type="text/css"/>

JSP のタグ解析は HTML のタグとは別に行われるので、上記のように H...続きを読む

QStruts2 タグの値取得について教えてください。

現在、HashMapにKeyとValueを入れ、<s:select>タグを使用し、
選択リストを表示し、選択後<s:submit>で値を
Actionに渡すプログラムを書いております。

今のところ表示まではできるようになったのですが、
Action側で値の取得の方法がわかりません。

いろいろ調べてみたのですが一覧を表示する方法の
サイトはいくつか見つかったのですが値の取得方法がどうしてもみつかりません。

ご存知の方がいらっしゃいましたら
参考URLや方法等ご教示いただけないでしょうか。

Aベストアンサー

値の受け取り方には、FieldDriven, ModelDriven,
ScopedModelDriven等の方法がありますが、
一番簡単なFieldDrivenであれば、
Actionにプロパティを実装して、
そのプロパティ名をタグのname属性に指定すれば良いです。

FooAction {
private String pref;
// アクセッサは適宜実装して下さい。
}

<s:select name="pref" list="#{'01':'北海道', '02':'青森県', 以下略}"/>

QStruts2のifタグについて

いつもお世話になっております。

現在Struts2の学習を行っているのですが、
iteratorでlistの中のmapの値を取得しているのですが、
データを表示させるか判定に使用するifのタグの条件に
propertyタグで取得した値を使用としたら、
正しく判定されませんでした。
どうしたらifタグのtest属性内でpropertyタグを使用できるでしょうか?

<table>
<s:iterator id="categoryList" value="categoryList" status="rowstatus" >
<s:property value="CATEGORYNAME"/>
<table border="3">
<s:iterator id="categoryTopicList" value="categoryTopicList" status="rowstatus" >
<s:if test='<s:property value="TCID"/> == <s:property value="CATEGORYID"/>'>
<tr>
<td><s:property value="CATEGORYID" /></td>
<td><s:property value="TCID" /></td>
<td><s:property value="TOPICNAME" /></td>
<td><s:property value="PROCEDURE"/></td>
</tr>
</s:if>
</s:iterator>
</table>
</s:iterator>

というようにjspは記述しています。
ifタグを使わずに表示させると値は取得されていたのでDBエラー等ではありませんでした。
使用しているstruts2のバージョンは2.0.14です。

ifタグにpropertyタグの値を条件として記述する方法を教えてください。
よろしくお願いします。

いつもお世話になっております。

現在Struts2の学習を行っているのですが、
iteratorでlistの中のmapの値を取得しているのですが、
データを表示させるか判定に使用するifのタグの条件に
propertyタグで取得した値を使用としたら、
正しく判定されませんでした。
どうしたらifタグのtest属性内でpropertyタグを使用できるでしょうか?

<table>
<s:iterator id="categoryList" value="categoryList" status="rowstatus" >
<s:property value="CATEGORYNAME"/>
<table border="3">
<s:iterator id="categoryTopic...続きを読む

Aベストアンサー

<s:if test="#categoryTopicList.TCID == #categoryTopicList.CATEGORYID">
でどうでしょう?
#categoryTopicListは、idに指定してある名前です。

ですから、
<s:iterator id="categoryTopic" value="categoryTopicList" status="rowstatus" >
とした場合は、
<s:if test="#categoryTopic.TCID == #categoryTopic.CATEGORYID">
になります。

Qの値をリストで取得したい

Struts2です。
リストの取得の仕方で困っています。

特定の条件で検索をかけ、jspに表示された結果を一部textfieldで<s:iterator>のリスト表示し、その中身を変更して更新ボタンを押すと、DBのデータを更新する、という流れです。

jspは以下のようになっています。(一部抜粋)

<table border="1">
<s:iterator status="st" value="projectList">
<tr>
<td><s:checkbox id="isChecked" name="isChecked" /></td>
<td><s:property value="projno"/></td>
<td><s:textfield id="projname" name="projname" maxlength="24" size="52" /></td>
<td><s:select id="deptno" name="deptno" list="departmentList" value="%{deptno}" listKey="deptno" listValue="deptno" /></td>
<td><s:textfield id="respemp" name="respemp" maxlength="6" size="12" /></td>
<td><s:textfield id="prstaff" name="prstaff" maxlength="6" size="12" /></td>
<td><s:textfield id="prstdate" name="prstdate" maxlength="8" size="12" /></td>
<td><s:textfield id="prendate" name="prendate" maxlength="8" size="12" /></td>
<td><s:textfield id="majproj" name="majproj" maxlength="6" size="12" /></td>
</tr>
</s:iterator>
</table>
<s:property value="listSize"/>件
<s:form >
<table>
<tr>
<td><s:textfield label="プロジェクトNo" id="projno" name="projno" size="8" maxlength="6" /></td>
</tr>
</table>
<table>
<tr>
<s:submit action="search103R" value="一覧検索" onclick="return search_fnc()" />
<s:submit action="modify103R" value="一覧更新" onclick="return modify_fnc()" />
<s:submit action="jumpStruts2" method="jump103R3" value="登録画面" />
<s:property value="replyMsg" />
<s:hidden value="%{projno}" />
</tr>
<s:actionerror />
</table>
</s:form>

javaのロジックは、以下のようになっています。引数に入れられた項目で更新する、という処理です。

// 更新処理
public void modify(String projno, String projname, String deptno, String respemp, String prstaff, String prstdate, String prendate, String majproj) throws SQLException, IOException {
// SQLプロパティファイル読み込み
sqlConf = DevLearningUtils.loadProperties("sql");
// SQL文
    UPDATE PROJECT SET PROJNAME = ?, DEPTNO = ?, RESPEMP = ?, PRSTAFF = ?, PRSTDATE = ?, PRENDATE = ?, MAJPROJ = ? WHERE PROJNO = ?

// 更新のSQL文を読み込む
statement = conn.prepareStatement(sqlConf.getProperty("ProjectModify"));

// 更新項目をSQL文にセット
statement.setString(1, projname);
statement.setString(2, deptno);
statement.setString(3, respemp);
// プロジェクト工数が空なら0を入れる
if (prstaff.length() == 0) {
statement.setString(4, "0");
} else {
statement.setString(4, prstaff);
}
statement.setString(5, FormatUtils.addHyphenToDate(prstdate));
statement.setString(6, FormatUtils.addHyphenToDate(prendate));
statement.setString(7, majproj);
statement.setString(8, projno);

statement.executeUpdate();
}

色々と調べてみたのですが、iteratorの内容をリストとしてjavaで取得する、という方法がわかりませんでした。ご教示お願いします。

Struts2です。
リストの取得の仕方で困っています。

特定の条件で検索をかけ、jspに表示された結果を一部textfieldで<s:iterator>のリスト表示し、その中身を変更して更新ボタンを押すと、DBのデータを更新する、という流れです。

jspは以下のようになっています。(一部抜粋)

<table border="1">
<s:iterator status="st" value="projectList">
<tr>
<td><s:checkbox id="isChecked" name="isChecked" /></td>
<td><s:property value="projno"/></td>
<td><s:textfield id="projname" name="projname" maxl...続きを読む

Aベストアンサー

nameが
projectList[0].projname
といった具合になるように生成してあげれば、
projectListの0番目の要素のprojnameに値をセットしてくれます。

具体的には
<s:iterator status="st" value="projectList">
<s:textfield name="projectList[%{#st.index}].projname" value="%{projname}" />
とします。

QJSP使用によるスタイルシート読み込みについて

勉強のため、struts + Eclipseを使用して、JSP
を作成しているのですが、<link>タグを使用して
スタイルシートを読み込みたいのですが、うまく
いきません。(1)のURLでJSPを表示するとうまくい
くのですが、イベントを実行(submit)すると、URL
が(2)に変更されてしまい、読み込めません。

URL(1)
http://localhost:8080/aa/bb/cc/dd/index1.jsp

URL(2)
http://localhost:8080/aa/index1.do

現在、<link>タブは相対パスを指定しているの
ですが、パスを絶対パスに変更すればうまくいき
ます。

変更前(相対パス指定)
<link href="../style.css"・・・>

変更後(絶対パス指定)
<link href=
"http://localhost:8080/aa/bb/cc/style.css"・・・>

他にスタイルシートを読み込む方法はございません
でしょうか。よろしくお願いします。

勉強のため、struts + Eclipseを使用して、JSP
を作成しているのですが、<link>タグを使用して
スタイルシートを読み込みたいのですが、うまく
いきません。(1)のURLでJSPを表示するとうまくい
くのですが、イベントを実行(submit)すると、URL
が(2)に変更されてしまい、読み込めません。

URL(1)
http://localhost:8080/aa/bb/cc/dd/index1.jsp

URL(2)
http://localhost:8080/aa/index1.do

現在、<link>タブは相対パスを指定しているの
ですが、パスを絶対パスに変更すればうまくいき
ます。

...続きを読む

Aベストアンサー

解決したと思いますが、誤った書き込みがあるので訂正します。

>JSP は一度、コンパイルされて、ワークフォルダに実体(.java)ができますから、表示されている JSP の実体がある場所がカレントパスになります。
>こういった事象は、カレントパスの誤認識のせいで起こる場合があります。
の部分は間違いです。
linkタグで指定されたCSSの場所はJSPやサーブレットが解決するわけではなく、ブラウザが解決します。なのでJSPの実体のパスなどは無関係で、カレントパスの誤認識等で起こるわけではありません。むしろ正常な動作です。

URL(1)でアクセスした場合、ブラウザは「http://localhost/aa/bb/cc/dd/」をカレント(現在地)と見なします。
しかし、URL(2)でアクセスした場合、ブラウザは「http://localhost/aa/」をカレントと見なすため、CSSのパスが相対パスで指定された場合、両者のCSSは全く違うものを指すことになります。

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

QStrutsでチェックボックスの値を取得する方法

明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。
現象
1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。
2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。
※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している
3.上記1と同じHTMLフォームにおいて、今度はチェックボックスの選択を外して、サーバへ送る。
4.チェックを外したにも関わらず、trueの状態になってしまう。
良い対処方法があれば、ご教授をお願いします

※他のホームページで、ActionFormに下記メソッドを記述すると、チェックボックスが正常に戻ると書いてあり、試しましたがダメでした。
画面ActionForm内に、testActionFormのListを作成し、その中にチェックボックスがある場合、適用されないのでしょうか?
public void reset(ActionMapping mapping, HttpServletRequest request){
testCheckBox=false;
}

☆作成したJSP
<%-- 明細行の反復表示 start --%>
<logic:iterate name="testActionForm" id="ViewList"property="ViewList" indexId="idx">
<!-- チェックボックス 開始-->
<td nowrap >
<html:checkbox property="testCheckBox" name="ViewList" indexed="true" index="idx" />
</td>
<!-- チェックボックス 終了-->
<!-- 入力テキスト 開始-->
<td nowrap >
<html:text property="testInput" size="50" maxlength="30" name="ViewList" indexed="true" index="idx" />
</td>
<!-- 入力テキスト 終了-->
<%-- 明細行の反復表示 end --%>
</logic:iterate>

明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。
現象
1.下記「作成したJSP」のチェックボックスを選択し、サーバへ送る。
2.「ViewList」内のチェックボックス「testCheckBox」(boolean型)にtrueが設定される。
※ViewListはtestActionFormのList型で、javaでもIteratorで1件づつtestActionFormを取得し、「testCheckBox」を確認している
3.上記1と同じHTMLフォームにおいて、今度はチェックボックス...続きを読む

Aベストアンサー

>>resetメソッドを定義するのは、ActionFormのクラスです。
>ActionFormのクラスに下記resetメソッドを定義しています。
>public void reset(ActionMapping mapping, >HttpServletRequest request){
>testCheckBox=false;
>}

ActionFormがもっているViewListのtestActionFormについてです。
public void reset(ActionMapping mapping, HttpServletRequest request){
for(int i=0;i<viewList.size();i++){
((testActionForm)viewList.get(i)).setTestCheckBox(false);
}
}

Qjsp 改行コードで改行させて表示したい

はじめまして。

PostgreSQLから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。
データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。

過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。


例えば、あるテーブルのある項目に、
A
B
C
というデータ(A,Bそれぞれの後に改行のある3行の文字列)があるとします。

これを読み込みaction form bean(と言うのですか?setter/getterを定義する関数です)を介してjspに埋め込むと、できあがるhtmlでは、
ABC
と改行されずに表示されます。

htmlで改行させるには「<BR>」が必要なのかと、データ文字列に0x0dや0x0a、または0x0d+0x0aがあれば「<BR>」に置き換えてaction form bean(?)のsetterに渡してjspを作ると、今度は、
A<BR>B<BR>C
と「<BR>」が文字列として表示されます。
htmlをソース表示すると、「A&lt;BR&gt;B&lt;BR&gt;C」で、親切にも「<」「>」をそれぞれ「&lt;」「&gt;」に勝手に置き換えあくまで文字列として表示してくれるようです。

試しに改行コードを「&lt;BR&gt;」に置き換えても予想通りその部分は
&lt;BR&gt;
とそのまま表示され、そのソースは「&amp;lt;BR&amp;gt;」でした。

「<」や「&lt;」等をそれぞれ「&lt;」「&amp;lt;」のように置き換える作業は、どこが行っているのでしょうか。
また、改行位置で改行させるにはどうすればよろしいでしょう。
OSはwindowsXPです。

無知ゆえに、つまらないことで悪戦苦闘しているのかも知れませんが、経験も浅くてよく解りません。

宜しくお願い致します。

はじめまして。

PostgreSQLから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。
データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。

過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。


例えば、あるテーブルのある項目に、
A
B
C
というデータ(A,Bそれぞれの後に改行のある3行の文字列)があるとします。

これを読み込みaction form bean(と言うのですか?setter/...続きを読む

Aベストアンサー

私も経験が浅いので、分からない部分が多いのですが、

"<"や">"を置き換えるという機能は、
Javaというより、strutsが提供している機能らしいです。

"<"や">"を置き換える機能を持たせないと、
ユーザーが何かフォーマットに入力するときに、
JavaScriptを書き込んで、
例えば、alertを出し続けるようないたずらができてしまうので、
そういうことを防ぐために、変換機能を持っているのだと思います。
(具体的にどのタイミングで変換しているかは分からないのですが・・・)

単純に、画面上で改行された表示にしたいということであれば、
HTMLの<pre>タグを使うといいと思います。

-----------------------------
<pre>
A
B
C
</pre>
-----------------------------
という感じで、改行されて表示されると思います。
この方法でやるなら、改行コードを"<BR>"に置き換える処理はしないことになります。

少しでも手がかりになればと思い、書き込ませていただきました。

私も経験が浅いので、分からない部分が多いのですが、

"<"や">"を置き換えるという機能は、
Javaというより、strutsが提供している機能らしいです。

"<"や">"を置き換える機能を持たせないと、
ユーザーが何かフォーマットに入力するときに、
JavaScriptを書き込んで、
例えば、alertを出し続けるようないたずらができてしまうので、
そういうことを防ぐために、変換機能を持っているのだと思います。
(具体的にどのタイミングで変換しているかは分からないのですが・・・)

単純に、画面上で改行...続きを読む

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

Qjavascriptでセレクトボックスの"selected"を動的につ

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
</select>月

<select name='day'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日


このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか?

よろしくお願いします。

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8...続きを読む

Aベストアンサー

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>月

<select name='day'>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日
</div>
</form>

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<opt...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報