jQuery脚本清除表单数据,但应该节省一个输入

时间:2014-05-04 04:34:17

标签: javascript jquery

我使用以下脚本和联系表单,确定它会清除input, textarea但不幸的是它也会清除submit按钮发送文本。我怎么能省下这个字段?

谢谢



表格

        <input class="required inpt" type="text" name="name" value="" placeholder="Name" /><br />
        <input class="required inpt" type="email" name="email" value="" placeholder="E-Mail" /><br />
        <textarea class="required textbox" name="message" rows="6" cols="30" placeholder="Comments" ></textarea><br />
        <input name="submit" type="submit" class="btn" value="Send" />

jQuery

var close_note = $("#note");
close_note.click(function () {
    jQuery("#note").slideUp(1000, function () {
        jQuery(this).hide();
    });
});

$("#ajax-contact-form").submit(function() {
    $('#load').append('<center><img src="images/ajax-loader.gif" alt="Currently Loading" id="loading" /></center>');
    var fem = $(this).serialize(),
        note = $('#note');
    $.ajax({
        type: "POST",
        url: "contact.php",
        data: fem,
        success: function(msg) {
            if ( note.height() ) {          
                note.slideUp(1000, function() {
                    $(this).hide();
                });
            } 
            else note.hide();
            $('#loading').fadeOut(300, function() {
                $(this).remove();
                if(msg === 'OK') {   $("#ajax-contact-    form").find('input, textarea').val(""); }     
                // Message Sent? Show the 'Thank You' message and     hide the form
                result = (msg === 'OK') ? '<div     class="success">Your message has been sent. Thank you!</div>' : msg;
                var i = setInterval(function() {
                    if ( !note.is(':visible') ) {
                        note.html(result).slideDown(1000);
                        clearInterval(i);
                    }
                }, 40);    
            }); // end loading image fadeOut
        }
    });

    return false;
});

2 个答案:

答案 0 :(得分:3)

您似乎正在使用以下行重置字段:

if(msg === 'OK') {   $("#ajax-contact-form").find('input, textarea').val(""); }

input, textarea不是非常具体,因此会触及您的所有输入。如果你有css选择器,你可以使用它们。在你的情况下,我可能会这样做:

if(msg === 'OK') {
    $("#ajax-contact-form").find('input:not([type=submit]), textarea').val("");
}

答案 1 :(得分:1)

您正在撰写$("#ajax-contact-form").find("input,textarea"),其中包括所有输入和textarea字段,包括submit按钮。

从您的选择中排除submit

试试这个:

$("#ajax-contact-form").find("input,textarea").not("input[type='submit']").val("");

OR:

$("#ajax-contact-form").find("input[type='text'],input[type='email'],textarea").val("");