1

これはばかげた質問になりますが、以下のjQuery検証プラグイン関数からAJAX部分を削除しようと非常に長い時間を費やしましたが、それでも検証は機能します。私は成功しなかったと言えば十分です。

$(document).ready(function(){
$("#myform").validate({
    debug: false,
    rules: {
        group: {required: true}, 
    },
    messages: {
        group: {required: " Choose a group."},
    },
    submitHandler: function(form) {
        $('#results').html('Loading...');
        $.post('', $("#myform").serialize(), function(data) {
            $('#results').html(data);
        });
    }
});
});

そうそう、私はばかげています。誰かが私を助けることができますか?

4

2 に答える 2

1

オブジェクトを返送するときは、JSON オブジェクトとして送信します。

シリアル化された要素を使用し、いくつかのデータを条件付けしてから、新しいページで何かを送り返す例を次に示します。

<?php
  $name = $_POST['name'];
  $email = $_POST['email'];
  $phone = $_POST['phone'];
  if(isset($name) && isset($email) && isset($phone)){
    return json_encode(array('filled' => 'yes', 'loc' => 'newpage.php'));
  }

?>

次に、バリデーターで、リダイレクトを模倣するためにdata.loc解析できます。window.location

$(document).ready(function(){
  $("#myform").validate({
    debug: false,
    rules: {
      group: {required: true}, 
    },
    messages: {
      group: {required: " Choose a group."},
    },
    submitHandler: function(form) {
      $('#results').html('Loading...');
      $.post('', $("#myform").serialize(), function(data) {
        if(data.filled == 'yes'){
          window.location = data.loc;
        }

      });
    }
  });
});
于 2012-06-28T14:06:13.903 に答える
0

関数を置き換えるだけですsubmitHandler

submitHandler: function(form) {
    $('#results').html('Loading...');
    // $.post('', $("#myform").serialize(), function(data) {
    //     $('#results').html(data);
    // });
}

を呼び出した後、次の方法で関数を.validate()呼び出します。.valid()#myform

$('#myform').valid();

これを追加して、フォームの送信のデフォルト アクションを削除していることを確認してください。

<form onsubmit="if (!$(this).valid()) return false;">

説明:form有効でない場合は送信されず、エラーが表示されます。フォームが有効な場合、この関数は通常のフォーム送信として送信します。

しかし、なぜそれをしたいのですか?他に何をしたいですか?

于 2012-06-28T13:57:46.267 に答える