
javascript初心者です。
1つのHTMLファイル内で、TABLE内のあるセルに対して、ボタンクリック時に単なるセルの値を<INPUT>タイプに変更する関数をinnerHTMLを使用して作成しました。
ところが実行すると一時的には更新され、表の中に<INPUT>フォームが表示されるのですが、関数を抜けると画面が再描画されて、初期表示状態に戻ってしまいます。
おかしな事は、その関数のすぐ下は</SCRIPT>でscriptの記述は終わりなのですが、関数の最後の締めくくり文字"}"と"</SCRIPT>"間にalertを記述すると、関数を抜けたあと、このalertが実行されます。そのまま下に流れてHTMLが実行されているようにも見えます。
環境はIE6.0(W2K)ですが、IE5.5(NT4.0&W2K)でも現象は一緒でした。
frameを使用して3ファイル(フレームファイルと上下のHTML)に分割して自分以外のhtmlをinnerHTMLで更新したことはあるのですが、この方法しかないでしょうか。
画面再描画を停止するMETAタグとか見当たらないようですが、ご存知でしたら教えて下さい。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
ソースありがとうございました。
修正方法は
onclick="fDayEdit()" を
onclick="return fDayEdit()" に変更
そして
fDayEdit関数の中身の
break; をすべて
return false;
に変更してください。
これでできました。
できました!!”return”が必要だったのですネ。
丸1日悩んでいたのが、嘘のようで、ここに尋ねにきてよかったです。
ソースまで見ていただき、本当にありがとうございました。
インターネットや周りの知り合いに聞いても的確な回答が得られなかったので
本当に助かりました。
まだまだjavascript初心モノですが、また是非よろしくお願いします。
No.1
- 回答日時:
ソースがないとピンときません。
そのソースを記載してもらえないでしょうか?
あとできれば、Webサーバーは何を使っているかも教えていただけたらありがたいです。
この回答への補足
Mizyuさん、早速の返事、ありがとうございます。
すぐに回答欲しい、といっておきながら遅れてすみません。
綺麗なソースではないと思いますが記載させていただきます。表のX2右横のイメージ(×になっているでしょうが)をクリックすると現象が見られると思います。
それからWebサーバは使用してません。デモ用画面のためWebブラウザのみの環境で動作させてます。
どうぞよろしくお願いします。
====================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<HTML>
<HEAD>
<SCRIPT language="javascript">
<!--
//変数
var komoku;
//ウィンドウ閉じる
function seikaClose(){
window.close();
}
//編集
function fDayEdit(){
for( i = 0; i < document.form1.komoku.length; i++ ){
if( document.form1.komoku[i].checked ){
komoku=parseInt( document.form1.komoku[i].value );
break;
}
}
alert("form1.komoku="+komoku);
switch(komoku){
case 0:
alert("case0");
document.all.D10.innerHTML = "<INPUT TYPE='text' NAME='date10' VALUE='2002/05/01' MAXLENGTH='10'>";
alert("case0");
break;
case 1:
alert("case1");
document.all.D20.innerHTML = "<INPUT TYPE='text' NAME='date20' VALUE='2002/05/20' MAXLENGTH='10'>";
document.all.D21.innerHTML = "<INPUT TYPE='text' NAME='date21' VALUE='2002/05/25' MAXLENGTH='10'>";
document.all.D22.innerHTML = "<INPUT TYPE='text' NAME='date22' VALUE='2002/05/31' MAXLENGTH='10'>";
alert("case1");
break;
case 2:
alert("case2");
document.all.D30.innerHTML = "<INPUT TYPE='text' NAME='date30' VALUE='2002/04/30' MAXLENGTH='10'>";
break;
alert("case2 end");
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<NOBR>
<BR><BR>
</NOBR>
<INPUT TYPE="image" onClick="seikaClose()" VALUE="<IMG border="0" src="../image/btm_close.gif" width="80" height="24">
<FORM NAME="form1">
<TABLE BORDER="1">
<TR CLASS="hyodai">
<TD NOWRAP ALIGN="center" COLSPAN="2">
</TD>
<TD NOWRAP ALIGN="center" WIDTH="100">
<TABLE BORDER="0">
<TR>
<TD NOWRAP ALIGN="center" WIDTH="100">X1</TD>
</TR>
</TABLE>
</TD>
<TD NOWRAP ALIGN="center" WIDTH="100">
<TABLE BORDER="0">
<TR>
<TD NOWRAP ALIGN="center" WIDTH="100">X2</TD>
<TD NOWRAP ALIGN="center"><INPUT TYPE="image" src="../image/btm_edit20s.gif" WIDTH="40" HEIGHT="20" BORDER="0" onclick="fDayEdit()"></TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD ALIGN="center" VALIGN="middle" CLASS="hyodai" WIDTH="10">
<INPUT TYPE="radio" NAME="komoku" VALUE="0"></INPUT>
</TD>
<TD CLASS="hyodai" VALIGN="top" WIDTH="100">
Y1
</TD>
<TD CLASS="meisai">
XXXXX
</TD>
<TD CLASS="meisai" ALIGN="center" ID="D10">
<FONT COLOR="red">2003/05/01</FONT>
</TD>
</TR>
<TR>
<TD ROWSPAN="3" ALIGN="center" VALIGN="middle" CLASS="hyodai" WIDTH="10">
<INPUT TYPE="radio" NAME="komoku" VALUE="1"></INPUT>
</TD>
<TD CLASS="hyodai" ROWSPAN="3" VALIGN="top" WIDTH="100">
Y2
</TD>
<TD CLASS="meisai">
XXXXX
</TD>
<TD CLASS="meisai" ALIGN="center" ID="D20">
<FONT COLOR="red">2003/05/20</FONT>
</TD>
</TR>
<TR>
<TD CLASS="meisai">
XXXXX
</TD>
<TD CLASS="meisai" ALIGN="center" ID="D21">
<FONT COLOR="red">2003/05/25</FONT>
</TD>
</TR>
<TR>
<TD CLASS="meisai">
XXXXX
</TD>
<TD CLASS="meisai" ALIGN="center" ID="D22">
<FONT COLOR="red">2003/05/31</FONT>
</TD>
</TR>
<TR>
<TD CLASS="hyodai" WIDTH="10" ALIGN="center" VALIGN="middle">
<INPUT TYPE="radio" NAME="komoku" VALUE="2" CLASS="hyodai"></INPUT>
</TD>
<TD CLASS="hyodai" ROWSPAN="2">
Y3
</TD>
<TD CLASS="meisai">
XXXXX
</TD>
<TD CLASS="meisai" ALIGN="center" ID="D30">
<FONT COLOR="red">2003/04/30</FONT>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
====================================================
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptでコマンドプ...
-
Access クエリ実行が急に非常に...
-
jarの開き方を教えてください。
-
OLE又はDDEを使うVISUAL BESIC...
-
batからexeを起動した際の戻り...
-
ASPからexeプログラムへ引数
-
アプリで作成したexeファイルを...
-
Eclipseでインポートしたファイ...
-
VBAでEXEファイルを動かす方法...
-
LINK : fatal error LNK1104に...
-
タスクスケジューラからのBA...
-
Winでコマンドプロンプトを出さ...
-
LAN接続された外部フォルダに出...
-
以下のように複数のファイルを...
-
64bit環境で32bitのodbc参照
-
eclipseで作ったプログラムを他...
-
コマンドプロンプトにてスター...
-
WinmostarでWinGAMESSがうごか...
-
batからexeを実行し戻り値を受...
-
ファイル名の先頭が数字だと駄...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
c/c++ ビルドしたにもかかわら...
-
VBAで他のプログラムが起動して...
-
コマンドプロンプトで外のexeや...
-
VBAでEXEファイルを動かす方法...
-
コンポーネント`MSCOMM32.cox'...
-
JavaScriptでコマンドプ...
-
VC++から引数付きexeファイルの...
-
JAVA .jarファイルに再圧縮する...
-
jarの開き方を教えてください。
-
WScript.Echo と msgbox
-
実行ファイルと実行モジュール...
-
以下のように複数のファイルを...
-
ネットワーク越しのEXEファ...
-
JAVAでつくったプログラムはコ...
-
LINK : fatal error LNK1104に...
-
Winでコマンドプロンプトを出さ...
-
VBAでMP3を鳴らしたい
-
VB6で、C言語の(argv,argc)み...
おすすめ情報