0

1ページに2つのフォームがありますform.php。最初の形式では、1つの入力フィールドと1つのテキストフィールドがあります。そして2番目のフォームには画像のアップロードボタンがあり、リダイレクトせずにアップロードするために使用しているのでonchange、そのフォームを送信しています。

ただし、ユーザーが画像を選択していない場合は、最終的なフォームを送信しないでください。

これが私のコードです:

$("#storyform").validate({
  rules: {
    story: {
      required: true,
      maxlength: 250
    },
    place: "required"


  },
  messages: {
    story: {
      required: "Please write your story",
      maxlength: $.format("At Max {0} characters !")
    },

    place: "Please write your place"

  },
  errorElement: "span",
  wrapper: "span" // a wrapper around the error message

});
4

2 に答える 2

2

.validate()各フォームで個別に初期化します。.valid()次に、2番目のフォームの内を使用して最初のフォームが有効かどうかをテストしますsubmitHandler

$(document).ready(function(){

    $("#firstForm").validate({  // initialize form validation on form 1
        // rules & other options
    });

    $("#secondForm").validate({ // initialize form validation on form 2
        // rules & other options,

        errorPlacement: function(error, element) {
            $("#firstForm").valid();  // forces test on form 1 when form 2 has errors
            error.insertAfter(element); // default error placement
        },
        submitHandler: function(form) {
            if ($("#firstForm").valid()) {  // test to see if form 1 is valid before submitting form 2
               form.submit;
            }
            return false;
        }
    });

});

$("#firstForm").valid()上記の2つの場所で、次の2つの場合に使用されます。

1)フォーム#2は有効です; submitHandler:したがって、フォーム送信の条件として、フォーム#1の有効性をテストする必要があります。

2)フォーム#2は無効です; したがって、内でフォーム#1の妥当性テストをトリガーする必要がありますerrorPlacement:。を使用しているerrorPlacement:ため、指定する必要があります。指定しないとエラーが表示されません。この例では、デフォルトのエラー配置コードを使用しただけです。


編集

2番目のフォームで最初のフォームと同時にエラーを表示する.valid()には、2番目のフォームのerrorPlacement:オプションにも追加します。これにより、フォーム2にエラーが発生したときにフォーム1でテストが強制されます。上記の編集されたコードを参照してください。

動作中のデモ:http : //jsfiddle.net/eLsDs/1/


編集2

HTMLが含まれていないため、HTMLが表示されませんが、OPのコードを含めるようにデモを変更しました。

OPのコードを使用したデモ:http: //jsfiddle.net/eLsDs/2/

于 2012-11-20T15:31:11.913 に答える
1

2つのフォームを使用する理由が必要なので、これを呼び出して、もう1つのフォームが有効かどうかを確認してください

$('#otherform').validate().valid()
于 2012-11-20T15:20:28.150 に答える