東京ウェブ制作ブロマガ

jQueryでフォームの入力例をフォーム内に表示させる

2013/03/31 19:28 投稿

  • タグ:
  • 登録タグはありません
  • タグ:
  • 登録タグはありません
●スクリプト

<script type="text/javascript">
$(function(){

var example_postcode = "例)140-0013";
var example_address  = "例)東京都品川区南大井2-12-1-407";
var example_name     = "例)大和賢一郎";
var example_mail     = "例)yamato@1mouke.com";


$("form").submit(function(){

var err = 0;

if($("input[name='postcode']").val()=="" || $("input[name='postcode']").val()==example_postcode){
if($("span#postcode").css("color") != "red"){
$("input[name='postcode']").css("border","1px solid red").after("<span id='postcode'> 郵便番号を入力してください</span>");
$("span#postcode").css("color","red");
}
err = 1;
}else{
$("input[name='postcode']").css("border","1px solid gray");
$("span#postcode").text("");
$("span#postcode").css("color","gray");
}


if($("input[name='address']").val()=="" || $("input[name='address']").val()==example_address){
if($("span#address").css("color") != "red"){
$("input[name='address']").css("border","1px solid red").after("<span id='address'> 住所を入力してください</span>");
$("span#address").css("color","red");
}
err = 1;
}else{
$("input[name='address']").css("border","1px solid gray");
$("span#address").text("");
$("span#address").css("color","gray");
}



if($("input[name='name']").val()=="" || $("input[name='name']").val()==example_name){
if($("span#name").css("color") != "red"){
$("input[name='name']").css("border","1px solid red").after("<span id='name'> お名前を入力してください</span>");
$("span#name").css("color","red");
}
err = 1;
}else{
$("input[name='name']").css("border","1px solid gray");
$("span#name").text("");
$("span#name").css("color","gray");
}


if($("input[name='mail']").val()=="" || $("input[name='mail']").val()==example_mail){
if($("span#mail").css("color") != "red"){
$("input[name='mail']").css("border","1px solid red").after("<span id='mail'> メールアドレスを入力してください</span>");
$("span#mail").css("color","red");
}
err = 1;
}else{
$("input[name='mail']").css("border","1px solid gray");
$("span#mail").text("");
$("span#mail").css("color","gray");
}


if(err==1){
return false;

}

}); // end of submit



$("input#name").val(example_name).css("color","#999")
.one("focus",function(){
$(this).val("").css("color","#000")
});


$("input#mail").val(example_mail).css("color","#999")
.one("focus",function(){
$(this).val("").css("color","#000")
});


$("input#postcode").val(example_postcode).css("color","#999")
.one("focus",function(){
$(this).val("").css("color","#000")
});


$("input#address").val(example_address).css("color","#999")
.one("focus",function(){
$(this).val("").css("color","#000")
});



});
</script>



●HTML
<form action="sendmail.php" method="post">

<p>お届け先の郵便番号 <input id="postcode" type="text" name="postcode" /></p>

<p>お届け先のご住所 <input id="address" type="text" name="address" /></p>

<p>お名前 <input id="name" type="text" name="name" /></p>

<p>メールアドレス <input id="mail" type="text" name="mail" /></p>

<input type="submit" value="送信" />

</form>



●CSS

input#postcode{
width:140px;
}

input#address{
width:360px;
}


input#name{
width:200px;
}


input#mail{
width:200px;
}



●解説
jQueryのfocusを使えば、フォーム内に記入例を表示できる。
フォームがフォーカスされたタイミングで記入例が消える。
なお、未入力チェックの処理において、記入例がそのままだと
未入力ではなく入力済みとして認識されるので
それを防ぐために
|| $("input[name='postcode']").val()==example_postcode
を入れている。

サンプルソース

ブロマガ会員ならもっと楽しめる!

  • 会員限定の新着記事が読み放題!※1
  • 動画や生放送などの追加コンテンツが見放題!※2
    • ※1、入会月以降の記事が対象になります。
    • ※2、チャンネルによって、見放題になるコンテンツは異なります。
東京ウェブ制作ブロマガ

東京ウェブ制作ブロマガ

大和賢一郎

月額:¥550 (税込)

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事

継続入会すると1ヶ月分が無料です。 条件を読む

東京ウェブ制作チャンネル

東京ウェブ制作チャンネル

月額
¥550  (税込)
このチャンネルの詳細