第二次没有触发jquery事件

时间:2013-02-27 02:30:08

标签: jquery

我的文字区域有一个类似于Twitter的数字倒计时,这是表单的一部分:

<form method="post" id="myemailform" action="">
<label for="ReferralMessage">Optional message:</label><textarea class="message" name="message"></textarea>
    <span class="countdown"></span>
</form>

我的jQuery 1.8.3代码:

function updateCountdown() {

    var remaining = 300 - jQuery('.message').val().length;
    jQuery('#myemailform button[type="submit"]').attr('disabled', false);
    if (remaining < 0){
        jQuery('.countdown').text(remaining).css({'color': 'red'});
        jQuery('#myemailform button[type="submit"]').attr('disabled', true);
    }
    if (remaining >= 0){
        jQuery('.countdown').text(remaining).css({'color': 'black'});
    }
}

jQuery(function() {

    var remaining = 300;
    //print amount currently
    jQuery('.countdown').text(remaining);
    //now update with changes
    jQuery('.message').on('input tap', updateCountdown);
});

在提交表单之前,这很有效。该页面已刷新,但现在倒计时不再有效。

虽然如果我手动刷新它会再次开始工作。为什么在提交初始表单后事件不会触发?

1 个答案:

答案 0 :(得分:1)

哎呀。代码没有错。这与我的选择器发生冲突。我使用message作为文本框的名称。它似乎与其他事情发生冲突。如此简单的解决方法是改变它:

<form method="post" id="myemailform" action="">
<label for="ReferralMessage">Optional message:</label><textarea class="optionalmessage" name="optionalmessage"></textarea>
    <span class="countdown"></span>
</form>