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

<input id="name" name="name" type="text" value="name" onblur="if(this.value == '') this.value='name';" onfocus="if(this.value == 'name') this.value='';" />

フォームにnameという文字列が表示されていてクリックすると文字列が消える。フォーカスを外すと再びnameが表示される。
それだけならば上記のコードで問題ないんですが、フォームに何も入力せず投稿ボタンを押すと、内容が「name」のまま投稿されてしまいます。

何か解決する良いアイデアはないでしょうか。
どうかよろしくお願いします。

A 回答 (3件)

こんにちは



<script type="text/javascript"><!--
function check() {
i = document.getElementById("name").value;
if(i == "name") return false;
}
//--></script>

<form action="***.cgi" method="post" onsubmit="return check()">
<input id="name" name="name" type="text" value="name" onblur="if(this.value == '') this.value='name';" onfocus="if(this.value == 'name') this.value='';"/>
<input type="submit" value="投稿">
</form>

とか

<script type="text/javascript"><!--
function check() {
i = document.getElementById("name").value;
if(i == "name") { alert("名前を入力して下さい"); }
else { document.getElementById("f").submit(); }
}
//--></script>

<form action="***.cgi" method="post" id="f">
<input id="name" name="name" type="text" value="name" onblur="if(this.value == '') this.value='name';" onfocus="if(this.value == 'name') this.value='';" />
<script type="text/javascript">
document.write("<input type='button' value='投稿' onclick='check()'>");
</script>
<noscript>
<input type="submit" value="投稿">
</noscript>
</form>

とか

<script type="text/javascript"><!--
function check() {
i = document.getElementById("name").value;
obj = document.getElementById("submit");
if(i != "name" && i != "") { obj.disabled = false; }
else { obj.disabled = true; }
}
//--></script>

<form action="***.cgi" method="post">
<input id="name" name="name" type="text" value="name" onblur="if(this.value == '') this.value='name';" onfocus="if(this.value == 'name') this.value='';" onkeyup="check()"/>
<script type="text/javascript">
document.write("<input type='submit' value='投稿' id='submit' disabled>");
</script>
<noscript>
<input type="submit" value="投稿">
</noscript>
</form>

とか?

※こういったチェックはjavascriptを使用してしかできない(知らないだけかもしれませんが)ので当然javascriptを切っていれば「name」のまま送信されることになります
    • good
    • 0
この回答へのお礼

ご返信大変遅れてしまってどうもすいみませんでした。
どうもありがとうございました。

お礼日時:2010/02/14 20:19

onblur、onfocusでテキストボックスの中身そのものを変更するのではなく、


背景画像(「name」の文字のみの画像)を表示・非表示することによって
似たような効果を演出しているのを見たことがあります。

<input ~中略~ style="background-image:url(name.gif);" onblur="this.style.backgroundImage='url(name.gif)';" onfocus="this.style.backgroundImage='';" />

のような感じだと思います。(ファイル名は仮のものです)


ちなみにそのフォームがCGI等への送信であれば、CGI等のほうで、内容が「name」のままであればそれに対する処理をするというのもどうでしょう・・・
    • good
    • 0
この回答へのお礼

ご返信大変遅れてしまってどうもすいみませんでした。
どうもありがとうございました。

お礼日時:2010/02/14 20:19

フォームに何も入力せず投稿ボタンを押す送信を取りやめる場合は、


確認はしていませんが,

<head></head>の中に
------------------------------------------------------------
<script type="text/javascript">
<!--
function check(f) {
if (f.name.value=="name") {
return false;
}

}
//--></script>
------------------------------------------------------------
を挿入し、<form>タグにonsubmit属性を

<form method="post" onsubmit="return check(this)">

追加してみてください。
    • good
    • 0
この回答へのお礼

ご返信大変遅れてしまってどうもすいみませんでした。
どうもありがとうございました。

お礼日時:2010/02/14 20:19

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