如何在表单提交后清除输入数据

时间:2012-07-24 18:15:13

标签: jquery forms

  

可能重复:
  Can't clear the input value after form is submited

好的,所以我试了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);
        });
    });
});

2 个答案:

答案 0 :(得分: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);
    //..................
}

答案 1 :(得分:2)

使用jQuery的each函数:

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

编辑:你的fadeIn / fadeOut看起来很好。