2016-06-28 8 views
0

メールが間違っていると、私は同じページに留まる間にエラーメッセージを表示します。これはajaxを使用したためです。今私はフォームを提出するときに達成しようとしています、そして、フォームはリセットされたエラーです。提出後にフォームをリセットする

私はreset();を試しましたが、動作しませんでした。

<?php 
    header("Refresh:7; url=contact.php"); 
    $email = $_POST['subscribefield']; 

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     echo "Dit emailadres klopt niet"; 
     reset($email); 
    } 


    $to = "[email protected]"; 
    $subject = "Abonee voor de nieuwsbrief"; 
    $body = "$email \n Heeft zich aangemeld voor de nieuwsbrief"; 

    mail($to, $subject, $body); 
    echo "U heeft zich zojuist aangemeld voor de vandenberg nieuwsbrief"; 
?> 

$('form.subscribe').on('submit', function() { 
    var that = $(this), 
    url = that.attr('action'), 
    method = that.attr('method'), 
    data = {}; 

    that.find('[name]').each(function(index, value) { 
     var that = $(this), 
     name = that.attr('name'), 
     value = that.val(); 

     data[name] = value; 
    }); 

    $.ajax({ 
     url: url, 
     type:method, 
     data: data, 
     success: function(response) { 
      $('#success-message').html(response).show(); 
      setTimeout(function() { 
       $('#success-message').fadeOut('slow'); 
      }, 2000); 
     } 
    }); 
    return false; 
}); 
+0

あなたはリセット機能が何をするか、PHPマニュアルを読みましたか? *配列の内部ポインタを最初の要素に設定する*そして、とにかく、フォーム送信時に 'event.preventDefault();'を追加し、そのjs関数にパラメータとしてイベントを追加したいと思う。 – vaso123

+1

あなたがしたいことがPOST電子メール変数を削除する場合は、代わりに 'unset($ _ POST ['subscribefield'])'を使用してください。そしてフォームの値をリセットしたい場合は、 '$( '。form.subscribe')[0] .reset();' –

+0

@NachoMを試してみてください。どちらも働いていない; _; –

答えて

1

あなたが本当にやりたいことは、フォームの値を試す空にしている場合:

$(':input','form.subscribe') 
.not(':button, :submit, :reset, :hidden') 
.val('') .removeAttr('checked') 
.removeAttr('selected'); 
0

あなた<form>の内側には、このボタンを置く:

<input type="reset" value="Reset Form" id="resetButton" > 

、あなたはこのような見返りに誤りを見つけたときに、このボタンをクリックをする、

$("#resetButton").click(); 
+0

送信ボタンに何が起こるか –

+0

送信ボタンを変更する必要はありません –

0

ajax呼び出しが成功したようなものですが、何かが間違っている場合は、クライアントサイドのフォームをリセットしてください。例えば

:一方

success: function(resp) { 
    // if the form is invalid 
    if (resp.invalid) { 
     // find your elems 
     $('#myForm').find('input[type=text]').val(""); 
    } 
} 

あなたも、サーバー上でクライアント側で最初にフォームを検証する必要があります。たとえばthis libraryは非常に便利です。

関連する問題