こんにちは

JAVASCRIPTについてお教えください。

http://espion.just-size.jp/archives/07/035231221.html
↑こちらで紹介されている、フォームのバリデーションのJAVASCRIPTを使用しているのですが、
同時に、
http://shoyu-ramen23.jugem.jp/?eid=211
↑こちらで紹介されているような、送信ボタンの2度押しを防止するためのJAVASCRIPTも使用したいのです。
しかし、どのように二つを組み合わせればよいのかがよくわかりません。

①でバリデーションを行うとき、全てフォーム内容のチェックが通り、無事サブミットが行われるときのみ②が適用されて、送信ボタンが無効状態にしたいと思っています。
つまり、まだフォーム内容に未記入などがある場合は、ボタンは無効にならないようにしたいわけです。

大変恐縮ですが、どうぞご教授ください。

回答の条件
  • 1人2回まで
  • 登録:2010/10/25 00:28:39
  • 終了:2010/10/25 07:03:47

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492010/10/25 03:03:25

ポイント100pt

(1)のvalidator.jsファイルの47行目に下記の様な具合に書き加えます

   submit: function(form) {
      this.allclose(form);
      var btns = new Array;

      for(var i = 0, f; f = form[i]; i++) {
         if(f.onblur)
            f.onblur();
         if(f.type == 'submit')
            btns.push(f);
      }

      for(var i = 0, f, z; f = form[i]; i++) {
         if(f._validbaloon && f._validbaloon.visible()) {
            while(z = btns.shift())
               this.baloon.open(z, this.rule.submit());
            return false;
         }
      }

      // 追加するのは下の4行
      for(var i = 0, f; f = form[i]; i++) {
         if(f.type == 'submit')
            f.disabled = true;
      }
      
      return true;
   },

一瞬で画面遷移してしまって本当にdisabledになっているのか確認できないという場合は、

上記function最後のreturn true;をreturn false;にしてsubmitしないようにするなどして動作確認してみてください

id:van2010

ありがとうございます!

上手くいきました。

感謝感謝です。

2010/10/25 07:03:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません