重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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タグとか見当たらないようですが、ご存知でしたら教えて下さい。
よろしくお願いします。

A 回答 (2件)

ソースありがとうございました。


修正方法は
onclick="fDayEdit()" を
onclick="return fDayEdit()" に変更

そして
fDayEdit関数の中身の
break; をすべて
return false;
に変更してください。

これでできました。
    • good
    • 0
この回答へのお礼

できました!!”return”が必要だったのですネ。
丸1日悩んでいたのが、嘘のようで、ここに尋ねにきてよかったです。
ソースまで見ていただき、本当にありがとうございました。
インターネットや周りの知り合いに聞いても的確な回答が得られなかったので
本当に助かりました。
まだまだjavascript初心モノですが、また是非よろしくお願いします。

お礼日時:2002/09/06 21:41

ソースがないとピンときません。


そのソースを記載してもらえないでしょうか?

あとできれば、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>

====================================================

補足日時:2002/09/06 16:28
    • good
    • 0

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