0

重複の可能性:
フォームの送信後に入力値をクリアできない

さて、100回試しました。検証してフォームを送信した後、入力データをクリアする必要があります。次に、ラッパーdivがフェードアウトします。したがって、検証、送信、データのクリア、フェードアウトを行います。val('')を適切な場所に配置していないように感じます。誰かが助けたいなら..ありがとう。

$(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);
        });
    });
});
4

2 に答える 2

3

次の行を削除します。

var name = $('input[name=name]').val('');
var email = $('input[name=email]').val('');
var message = $('textarea[name=message]').html('');

これを試してください:

function validate(formData, jqForm, options) {
    //.....Some code.....
    if (!message[0]) {
        alert('Please enter a value for message');
        return false;
    }
    //....Added code....
    setTimeout(function(){
        $('input,textarea','#form1').val(''); //clearing inputs
    },1);
    //..................
}
于 2012-07-24T18:25:51.837 に答える
2

jQuery のeach関数を使用して:

$("input").each(function (){
    $(this).val() = "";
});

編集:フェードイン/フェードアウトは問題ないようです。

于 2012-07-24T18:17:19.237 に答える