FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フォームの値チェック by javascript



Wind Song  松たか子

ジャングル大帝の主題歌
小学校のとき好きだったー

バンドメーリスのbugフィックスしたのでそのメモ.



症状

さぬゆりから報告があってたバンドメーリスのやつでエラーが出てた症状としては
選択先のバンドを選んでいないときに変なメッセージが出てたみたいですね.
なので,バンドを選んでいない⇒ページ遷移せずエラー表示する
という風に対処しようと考えました.

jQuery先生の活躍?!

と思い,jQueryのフォームチェックのプラグインのform-validation-and-hintsを使ってやろうとしました.
しかしいくら仕様通りに使っても動かない…
まさかと思ってIEでやってみたら動く.
FireFoxでは動きませんでした.(ふつうの書き方ならいいけどphpの処理をはさむとダメっぽ?)

これではダメなので(特に自分の環境でエラーが出るとイヤww逆だったら無視したかもww)
見た目がかなりよくなるので使いたかったのですが・・・

今回jQuery先生には頼らずjavascriptで素直に書きました.

javascriptェ…

処理を書いたら簡単に実装できました.
しかし,javascriptに配列を渡した時,
なぜか中身が1つだと配列として認識しないのでちょっとめんどい処理が必要になりました.


$('#myForm1').submit(function(event){
if (document.myForm.elements['bandid[]'].length>1) {
count = 0;
for (var i=0;i if ((document.myForm.elements[i].name=="bandid[]") && (document.myForm.elements[i].checked)) {
count ++;
}
}
if(!count){
alert('少なくともバンドを1つ選んでください');
event.preventDefault();//submitイベント停止命令
}
}else if( (document.myForm.elements['bandid[]'].checked) ){
}else{
alert('少なくともバンドを1つ選んでください');
event.preventDefault();//submitイベント停止命令
}
if(document.myForm.elements['message'].value==""){
alert('本文を入力してください');
event.preventDefault();//submitイベント停止命令
}
});


上の日本語訳「選んだバンドの配列長が1より大きい時,チェックされている数を数えて0だったら警告だしてsubmitをキャンセルする.選んだバンドの配列長が1以下のとき(配列じゃないとき)それの中身がチェックされていなければ警告だしてsubmitをキャンセルする.あと本文が空でも警告だしてsubmitをキャンセルする」


こんな具合でできました.

form-validation-and-hintsがちゃんと動いてくれればよくあるフォームチェックでエラー出したりいろいろといい感じだったのになぁ・・・

comment

No title

マジgkさんパネェっす

No title

サブの「パネェ」うさんくさいw

No title

イナズマさんマジぱねえっすw

No title

ちょwシーサーさんww

ちなみに稲妻は漢字でお願いします!w
 ▼コメントを投稿する

管理者にだけメッセージを送る

つぶやき
プロフィール

GK.Kenta

Author:GK.Kenta
情報系大学院修士2年
来年からは福岡でASP(SaaSを提供)の会社にてSEです
ここではなるべく技術的な事をアウトプットしたいです

drumをば叩いております
live映像はこちらから
http://www.youtube.com/user/kwgt23

FC2カウンター
ブログ内検索
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。