🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: fj.lang.javascript
7 messages
7 total messages Started by Toshimi Yamasaki Mon, 09 Feb 1998 00:00
[Q]チャットの発言項目の自動クリア
#52
Author: Toshimi Yamasaki
Date: Mon, 09 Feb 1998 00:00
9 lines
923 bytes
 こんにちは、山崎@SRCです。

 チャットのCGIを作りました。
 そこで、チャットの発言項目を発言したあと自動的にクリアするようにJavaScriptで
作成したいのですが、クリアするところまでは上手くいくのですが、かなりの確立で入
力が二重におこなわれて、同じ発言が二つ送られたりしてしまいます。

 どうやったら、上手くクリアすることができるのでしょうか?
Re: [Q]チャットの発言項目の自動クリア
#53
Author: Toshimi Yamasaki
Date: Tue, 10 Feb 1998 00:00
12 lines
1040 bytes
>
> こんにちは、山崎@SRCです。
>
> チャットのCGIを作りました。
> そこで、チャットの発言項目を発言したあと自動的にクリアするようにJavaScriptで
>作成したいのですが、クリアするところまでは上手くいくのですが、かなりの確立で入
>力が二重におこなわれて、同じ発言が二つ送られたりしてしまいます。
>
> どうやったら、上手くクリアすることができるのでしょうか?
>
 ちなみにブラウザはネスケの4.04を使っています。
Re: [Q]チャットの発言項目の自動クリア
#55
Author: I. Hirokaz
Date: Tue, 10 Feb 1998 00:00
27 lines
1418 bytes
どうも、HIrokazです。

Toshimi Yamasaki <toshimi@src-inet.co.jp> wrote
 in article <6boenc$79c$1@nn-tk002.ocn.ad.jp>...
>>
>> こんにちは、山崎@SRCです。
>>
>> チャットのCGIを作りました。
>> そこで、チャットの発言項目を発言したあと自動的にクリアするように
>>JavaScriptで
>>作成したいのですが、クリアするところまでは上手くいくのですが、かなりの
>>確立で入力が二重におこなわれて、同じ発言が二つ送られたりしてしまいます。
>>
>> どうやったら、上手くクリアすることができるのでしょうか?
>>
> ちなみにブラウザはネスケの4.04を使っています。
>

私も同じようなことをやっているのですが、クリアすることもできない
ので、どのようなコードを書いたか教えていただけないでしょうか。


Thank you.
-- 
 HIrokaz <ishiiro@venus.dti.ne.jp>
 
Re: Re: [Q]チャットの発言項目の自動クリア
#57
Author: Shigeki Morimoto
Date: Thu, 12 Feb 1998 00:00
55 lines
2222 bytes
$B?9K\!w%U%j!<%@%`$G$9(B

>>>>> In article <6bqdje$nd6$1@news2.dti.ne.jp>
>>>>>"" == <ishiiro@venus.dti.ne.jp> writes:> 
> $B;d$bF1$8$h$&$J$3$H$r$d$C$F$$$k$N$G$9$,!"%/%j%"$9$k$3$H$b$G$-$J$$(B
> $B$N$G!"$I$N$h$&$J%3!<%I$r=q$$$?$+65$($F$$$?$@$1$J$$$G$7$g$&$+!#(B


$B<+:n$N%A%c%C%H%9%/%j%W%H$G;HMQ$7$F$$$k%3!<%I$rH4?h$7$F$_$^$7$?!#(B
$B;29M$K$7$F$_$F$/$@$5$$!#(B

<SCRIPT LANGUAGE="JavaScript">
<!-- hide
    eracing = false;

    function msgSetup (form) {
        if(form.message_tmp.value.length == 0 || eracing){
            return false;
	}else{
	    form.message.value = form.message_tmp.value;
            eraseText(form.message_tmp);
            return true;
        }
    }

    function eraseText (text) {
        eracing = true;
        funnyEraseSetup(text)
    }

    function funnyEraseSetup (text) {
        funnyEraseTarget = text;
        funnyErase()
    }

    function funnyErase () {
        if(funnyEraseTarget.value.length != 0){
            startPos = Math.max(Math.floor(Math.sqrt(funnyEraseTarget.value.length)), 1)
            funnyEraseTarget.value = funnyEraseTarget.value.substring(startPos, funnyEraseTarget.value.length)
            window.setTimeout("funnyErase()", 1)
        }else{
	    eracing = false;
	}
    }
// -->
</SCRIPT>

<FORM METHOD="GET" ACTION="hogehoge.cgi" onSubmit="return msgSetup(this)" NAME="sendComment">
    <INPUT TYPE="hidden" NAME="message"  VALUE="">
    <INPUT TYPE="text"   NAME="message_tmp">
</FORM>
--
($BM-(B)$B%U%j!<%@%`(B              $B$W$m$0$i$^$!(B              $B?9K\LP<y(B
mori@freedom.co.jp    Shigeki@morimo.to
Re: [Q]チャットの発言項目の自動クリア
#58
Author: Toshimi Yamasaki
Date: Thu, 12 Feb 1998 00:00
30 lines
1813 bytes
>私も同じようなことをやっているのですが、クリアすることもできない
>ので、どのようなコードを書いたか教えていただけないでしょうか。

 もう既にフォローしてる方も居るようですが、私の一応現状のソースを載せます。
 JavaScriptは今回の為に勉強したのでお粗末なものです。

<SCRIPT LANGUAGE="JavaScript">
	function submitchgmsg(){
		if(document.hatugen.flg.value != "busy"){
			document.hatugen.flg.value = "busy";
			var commentvalue;
			commentvalue = document.hatugen.message0.value;
			document.hatugen.message0.value = "";
			document.hatugen.message.value = commentvalue;
			document.hatugen.submit();
			document.hatugen.flg.value = "time";
		}
	}
</SCRIPT>

・・・ 中略 ・・・

<FORM ACTION="./chatout.cgi" METHOD="POST" TARGET="out" NAME="hatugen" onSubmit="submitchgmsg()">
	発言 :<INPUT TYPE="text" NAME="message0" SIZE="50"><BR>
	<INPUT TYPE="submit" VALUE="発言"><INPUT TYPE="reset" VALUE="消去"><BR>
	<INPUT TYPE="hidden" VALUE="" name="message">
	<INPUT TYPE="hidden" VALUE="" name="flg">
	<INPUT TYPE="submit" VALUE="入室"><INPUT TYPE="reset" VALUE="消去"><BR>
</FORM>
Re: [Q]チャットの発言項目の自動クリア
#59
Author: Satoshi Kudoh
Date: Fri, 13 Feb 1998 00:00
43 lines
2018 bytes
In article <6bu5eg$dfh$1@nn-tk002.ocn.ad.jp>, toshimi@src-inet.co.jp
(Toshimi Yamasaki) wrote:

><SCRIPT LANGUAGE="JavaScript">
>        function submitchgmsg(){
>                if(document.hatugen.flg.value != "busy"){
    (略)
>                        document.hatugen.submit();
>                        document.hatugen.flg.value = "time";
>                }
>        }
></SCRIPT>
>
>・・・ 中略 ・・・
>
><FORM ACTION="./chatout.cgi" METHOD="POST" TARGET="out" NAME="hatugen" 
> onSubmit="submitchgmsg()">
    (略)
></FORM>

もう解決されたかも知れませんが...。

<form>のonSubmitで指定する関数は,submitされる「前」に実行されるものです。

で,その関数の結果によってsubmitするかしないかが決定されます。

上記のスクリプトでは,submitchgmsg()内でsubmitが行われ,そのあとに
<form>のaction(すなわちsubmit)が実行されているようです。

下記のようにすれば大丈夫でしょう。
function submitchgmsg() {
    .....
    // submitはしないこと
    return true;  // submitしたくないときはfalseを返す
}
.....
<form action="hoge.cgi" method=post onSubmit="return submitchgmsg()">
.....
</form>
______________________________________
  Satoshi Kudoh <kudo3104@ics.co.jp>
__________ Frame-G DSP ICS Co., Ltd.__
Re: [Q]チャットの発言項目の自動クリア
#65
Author: Toshimi Yamasaki
Date: Mon, 16 Feb 1998 00:00
24 lines
1355 bytes
 こんにちは、山崎@SRCです。

 みなさんに色々教えてもらった結果、発言の自動クリアが正常に動作するようになりました。

  Satoshi Kudohさん言う通り、JavaScriptの関数中でsubmit()を発行していたのが間違いでした。

 以下に完成したソースを報告します。
 同じ状況で困ってる方は参考にしてください。

 JavaScriptの関数
	function submitchgmsg(){
		var commentvalue;
		commentvalue = document.hatugen.message0.value;
		document.hatugen.message0.value = "";
		document.hatugen.message.value = commentvalue;
		return true;
	}

 HTMLのFORM文
	<FORM ACTION="./xxx.xxx" METHOD="POST" TARGET="xxx" NAME="xxx" onSubmit="return submitchgmsg()">


 フォローをくださった方ありがとうございました。
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads