我提交时只在jQuery中显示一条消息

时间:2011-10-21 11:57:15

标签: javascript jquery html forms

当我提交表单时,我在jQuery中显示一条消息。

我希望在我多次提交时只出现一次

$('form').submit(function(){
    if ($('#title').val() != '' && $('#comment').val() != '')
        $('form').append($('<span>').text('Bug sent').delay(4000).fadeOut(600));
    else
        $('form').append($('<span>').text('Fields are empty').delay(4000).fadeOut(600));

return false;
});

示例:http://jsfiddle.net/bUS8e/

6 个答案:

答案 0 :(得分:3)

只需删除表单中的所有现有spanhttp://jsfiddle.net/pimvdb/bUS8e/1/

$('form span').remove();

请注意,这也会删除您可能不想删除的任何其他不相关的span。在这种情况下,您可以向添加的邮件span添加一个类,并使用$('form span.message').remove();以便只删除那些邮件span

答案 1 :(得分:2)

检查$('form').text()是否包含“已发送错误”? 即。

$('form').submit(function(){
    if ($('#title').val() != '' && $('#comment').val() != '')
        if (!/Bug sent/.test($('form').text()) {
            $('form').append($('<span>').text('Bug sent').delay(4000).fadeOut(600));
        }
    else
        $('form').append($('<span>').text('Fields are empty').delay(4000).fadeOut(600));

return false;
});

答案 2 :(得分:2)

用户提交表单时删除所有跨度。然后再次添加它们(如有必要):

Like this

答案 3 :(得分:1)

您可以将span添加到HTML代码中并为其指定ID。而不是每次都附加一个新的span,而只是通过其ID来重用现有的{{1}}。

答案 4 :(得分:1)

在表单中添加div(或任何其他元素)并使用$('div').html([YOUR STUFF])代替$('form').append([YOUR STUFF])

答案 5 :(得分:0)

您应该在以下之前清除父元素:

$('form').submit(function(){
    if ($('#title').val() != '' && $('#comment').val() != '')
        $('form').empty().append($('<span>').text('Bug sent').delay(4000).fadeOut(600));
    else
        $('form').empty().append($('<span>').text('Fields are empty').delay(4000).fadeOut(600));

    return false;
});