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

私なりにjsのソースを作成したのですが、どうしてもできません。
どうしたらできるんでしょうか?
以下がjsのコード
function chat(){document.chat.comment.value="";}
以下がチャットのsubmit欄
<form name=\"chat1\" action=\"../../fchat/windy.cgi\" target=\"chat\" onsubmit=\"return chat()\">
<input type=\"hidden\" name=\"mode\" value=\"regist\">
<input type=\"hidden\" name=\"name\" value=\"$chara[4]\">
<input type=\"text\" name=\"comment\">
<select name=\"color\">
<option value=\"#FF1000\">赤
<option value=\"#0000ff\">青
<option value=\"#74FF55\">緑
<input type=\"submit\" class=\"btn\" value=\"発言/更新\">
</form>
"が\"になっているのは、perlのprint"";を使用しているので、
気にしないでください。

A 回答 (2件)

フォームの名前がちがうんじゃないのかな?

    • good
    • 0

onsubmit="return chat();"


chat()関数で戻り値が返されていないように見えるのですが・・・

本題
コメント欄、というのがチャットの発言内容ということですよね?

質問文の例の流れを整理すると、
 submitを押す
 document.chat.comment.value="";が処理され、送信内容が先に消える
 returnがよくわからないから../../fchat/windy.cgiに送信
といった感じだと思います。

「送信内容が先に消える」のが問題なのでしょうから、その対策をするために、
・内容が消えたように見せかけてhiddenに隠した状態で送信
・chatフレーム(?)が更新されたらcomment.value="";
といった流れにしてみるといいでしょう。

個人的に一つ目のが良い気がするのでそっちの例。
function chat(){
document.chat.comment_h.value=document.chat.comment.value;
document.chat.comment.value="";
return true();
}

<form ~中略~>
<input type=\"hidden\" name=\"comment_h\" value=\"\">
~中略~
</form>

cgiのほうではフォームから受け取る変数を「comment」から「comment_h」に変えます。
    • good
    • 0

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