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 回答