0

わかりました、見つけられるすべての提案を試しましたが、フォームとフェードアウトを送信した後もそれらの値はまだ残っています。誰か提案があれば...

<script type="text/javascript">

$(document).ready(function() { 
    $('#form1').ajaxForm( { beforeSubmit: validate } ); 

function validate(formData, jqForm, options) { 
    var name = $('input[name=name]').fieldValue(); 
    var email = $('input[name=email]').fieldValue(); 
    var message = $('textarea[name=message]').fieldValue(); 

if (!name[0]) { 
alert('Please enter a value for name'); 
return false; 
}  
if (!email[0]) { 
alert('Please enter a value for email'); 
return false; 
}  
if (!message[0]) { 
alert('Please enter a value for message'); 
return false; 
}
}
var name = $('input[name=name]').val(''); 
var email = $('input[name=email]').val('');
var message = $('textarea[name=message]').html(''); 

$("#form1").ajaxForm(function(){
        $("#formplic").fadeOut(1000, function() {
             $(this).html("<img src='images/postauto2.png'/>").fadeIn(2000);
        });
    });
});
</script> 

提案を追加しましたが、まだ機能していません。多分私はそれらを正しい場所に置いていません...?

4

4 に答える 4

0
$("#form")[0].reset();

これは役立つかもしれません

于 2013-05-20T13:49:12.040 に答える
0

編集: なぜ機能しないのか スクリプトを読んでください。あなたが追加した提案(私のコード)は、グローバルスコープの単なる通常のステートメントです-ブラウザーがファイルをロードすると、

  1. ドキュメントの準備方法を設定します
  2. 関数validateを実現
  3. 設定値空欄実行
  4. ajaxForm 値を設定します

フォームが検証された後にフォームをリセットしたい(そして先に進んだ)と仮定しています。

その場合、フォームが完了したときにリセットコードを実行する必要があります。それはいつですか?ここ:$("#form1").ajaxForm(function(){...

他の誰かが実際にあなたに正確なコードを与えました (私は信じています) が、それはコンピューターと JavaScript と言語がどのように実行されるかについてのあなたの理解に問題があると思います. もっと宿題をして、スクリプトのロジックに従うようにしてください。alert("I'm resetting the values now!")コードがいつ実行されているか (コードが適切な場所にあるかどうか) を通知するような単純なデバッグ ツール


コードのどこにも、実際にテキストをクリアしようとするところはありません。これらは、ブラウザにコンテンツをリセット/消去するように指示するためのいくつかの指示です。正しい場合にのみクリアしたいので、.ajaxForm コールバックに追加すると思います

var name = $('input[name=name]').val(''); //inputs are like this <input value="Hi">
var email = $('input[name=email]').val('');
var message = $('textarea[name=message]').html(''); //textareas are like this <textarea>Hi</textarea>

ちなみに、fadeOutは「フェードアウト」するだけで、ブロックを非表示にしてしまいます(css表示:なし;推測です)が、DOM要素/フォームは変更しません。

于 2012-07-24T16:21:48.217 に答える
0

.val() 関数を使用して text の値をクリアし、 html() 関数を使用して値をクリアします。また、各入力に ID を指定すると、jQuery で操作しやすくなります。

たとえば、次のようなフォームを作成します。

<form method="post" id="frmMessage" action="some_script.php">
<input type="text" name="name" id="txtName" />
<input type="text" name="email" id="txtEmail" />
<textarea name="message" id="txtMessage"></textarea>
</form>

次に、jQuery コードで次のようにします。

$("#frmMessage").ajaxForm( function()
{
    // Do whatever else you need to do first...
    // Fade out the form's container


    $("#txtName").val('');   // Clear the value of each box.
    $("#txtEmail").val('');  
    $("#txtMessage").html('');   // Different for textareas!

});
于 2012-07-24T16:28:38.540 に答える
0

値を送信するときに、入力値を空白に設定してみてください。

例: var name = $('input[name=name]').val(' ');

于 2012-07-24T16:23:44.020 に答える