アプリ版:「スタンプのみでお礼する」機能のリリースについて

<SCRIPT language=JavaScript><!--
function check()
{



<FORM action="mailto:××@××.com method="post" enctype="text/plain" name="myform" onSubmit="return Check()">
で未記入のものを確認してアラートを出すようにしています。
この機能にフォーム送信後、指定ページへ移動するようにしたいのですが、それは
可能ですか?となると別ページへの移動は
function Start(){
setTimeout('window.location.href="他のページのファイル名.htm"',5000);
}
// -->
</SCRIPT>



<FORM action="mailto:××@××" method="post" enctype="text/plain" name="myform" onSubmit="Start()">
になると思うのですが、onSubmit=の後に"return Check()"と
"Start()"というのは両方使えるものなのでしょうか?;でつないでも正しく動いてくれません。ページ移動が無理なら、"return Check()"を使う、
sent=0
function Check(){
if(sent==0){
sent=1;
return true;
}else{
if(confirm("1度送信された可能性があります。")){
return true;
}else{
return false;
}
}
}
かなと思ったのですが、これだと未記入の場合のアラートが出なくなります。
もう行き詰まってしまいました・・。
解決策をご存知の方、ぜひお願いします!

A 回答 (5件)

二つのチェックをくっつけてみました。


空白の場合と文字制限を条件分岐でわけました。
あと、エラーの場合アラート表示のあとにreturn false;を入れないと処理を止めて(抜けて)くれませんので注意してください。

例)
<SCRIPT language=JavaScript><!--
function check()
{
txt_1 = document.myform.sp.value;
n = txt_1.length;
//まず、空白かどうかチェックして、空白でなければ200文字以内かチェックする。
if(txt_1==""){
alert("希望を200文字程度で記入してください。");
return false;
}else if(n > 200){
alert("感想は200文字以内でご記入下さい。");
return false;
}

txt_2 = document.myform.wp.value;
m = txt_2.length;
if(txt_2==""){
alert("希望を200文字程度で記入してください。");
return false;
}else if(m > 200){
alert("希望は200文字以内でご記入下さい。");
return false;
}

window.location.href="http://www.××.com";

}

この回答への補足

皆様、本当にありがとうございました。おかげさまで無事形になりました。勉強するつもりですが、また行き詰まったらその時はまたよろしくお願いいたします。ありがとうございました!

補足日時:2002/05/31 11:41
    • good
    • 0
この回答へのお礼

あぁぁぁ、wolfwoodさん、ありがとうございます!!わざわざまとめていただけるとは・・・。本当になんとお礼を言っていいか・・・。
wolfwoodさんのおかげで無事動いてくれました。一箇所おかしいところ(1つめの希望を正しく入れて2つ目のフォームをクリックしただけで記入してくださいのアラートがでる)がありますが、頑張って直します!本当に本当にありがとうございます!うれしくて踊ってしまいそうです(笑)。

お礼日時:2002/05/30 16:25

はじめましてSINといいます。



下記のURLの掲示板にも同じようなことが書いてありました。

よろしければ参考にしてください。

「onSubmitで複数呼び出したいのですが」というテーマの

ところなどいいのではないかと思います。

参考URL:http://board.allabout.co.jp/javascript/
    • good
    • 0
この回答へのお礼

始めまして、SINさん。ご回答ありがとうございます!教えていただいたアドレス、早速拝見しました!皆さん高度なことで悩んでいらっしゃる・・・。でも頑張っている(悩んでいる)のが私だけじゃない事がわかりました(笑)。これからも躓いた時に活用させて頂きます。ありがとうございました!

お礼日時:2002/05/30 16:16

チェックの関数の最後にページ移動の処理を入れればよいと思います。


チェックに引っかかった場合(return(false)の時)、その時点で処理が止まります。
チェックが通り最後まで処理が流れた場合のみページ移動します。
ただし、これはフォームのactionがmailtoの時のみ有効です。
URLの場合、actionのURLの方に移動します。

例)
function Check(){

チェック処理

window.location.href="~";
}
    • good
    • 0
この回答へのお礼

wolfwoodさんこちらの回答もありがとうございます!毎回どうもすみません。
上記ですが、現在、
if(document.myform.sp.value==""){
alert("感想を200文字程度で記入してください。");
return false;
}
if(document.myform.wp.value==""){
alert("希望を200文字程度で記入してください。");
return false;
}
return true;
}
// -->
</SCRIPT>
となっているのです。しかし私がよくわからなかったので、もうひとつのチェック
機能を続けて
<SCRIPT language=JavaScript><!--
function check()
{
txt = document.myform.sp.value;
n = txt.length;
if (n > 200) alert("感想は200文字以内でご記入下さい。");
txt = document.myform.wp.value;
n = txt.length;
if (n > 200) alert("希望は200文字以内でご記入下さい。");
}
// --></SCRIPT>
と続けているのです。<SCRIPT language=JavaScript><!-- </SCRIPT>が2つあるのです(苦笑)。両方ともチェックなのですが、1つはブランクだった時のアラート、もうひとつは文字オーバーの時のアラートです。
これら全てをチェックして、クリアした時にメール送信とともに別ページへ移動、がしたいのですが、難しいでしょうか。
if (n > 200) alert("希望は200文字以内でご記入下さい。");
window.location.href="http://www.××.com";
といれると「希望を200文字程度で記入してください」のアラートがでてすぐにページジャンプしてしまうのです。く~~~。難しい!
もう少しあがいてみます!ありがとうございました!

お礼日時:2002/05/29 18:55

下記のアドレスに似たような質問がありましたので


参考にしてください。

参考URL:http://tohoho.wakusei.ne.jp/lng/200002/00020373. …
    • good
    • 0
この回答へのお礼

度々ありがとうございます。本当にお茶の一杯でもご馳走したくらいです。
早速拝見しました。・・・難しいところも多く道のりは遠かったのですが、めげずに頑張ります!本当に本当にありがとうございます!

お礼日時:2002/05/29 18:14

ご苦労様です。



<input type="hidden" name="_to_" value="メールアドレス">
<input type="hidden" name="_subject_" value="件名">
のあとに↓
<input type="hidden" name="_location_" value="http://www.~">

でよいのでは。
    • good
    • 0
この回答へのお礼

あぁぁぁ、またしてもnishimori様!ありがとうございます!!
何回もアドバイスいただきまして、全てソースを見て頂きたいほどです!
上記の方法ですが、これってもしかしてCGIでしょうか?今はJavaScriptのみで作成してしまっているので、<input type="hidden" name="_to_" value="メールアドレス"> と<input type="hidden" name="_subject_" value="件名"> の記述がないのです・・・。
確かにCGIで作成していた時は
<FORM action=http://www.×××/cgiemail/cgi-email-v2.pl5/mail/××.txt
method=post><INPUT type=hidden value=××@××.ne.jp name=sendto><INPUT
type=hidden value=/mail/移動後のファイル名.htm name=success>で飛ばしていたのですが、今はこれがないのです。素人すぎてすみません・・・。

お礼日時:2002/05/29 17:06

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