第二个函数没有被调用

时间:2013-08-27 03:15:31

标签: javascript jquery html

这是我一直在努力解决的问题。我创建了两个函数,如下所示:

function limit_char_normal(textid, limit, infodiv){
    var text = $('#'+textid).val();
    var textlength = text.length;

    if (textlength > limit) {
        alert("Number of characters exceeded!");
        $('#'+textid).val(text.substr(0,limit));
        return false;
    }else{
        $('#' + infodiv).html(''+ (limit - textlength) +'');
        return true;
    }
};

function limit_char_unicode(textid, limit, infodiv){
    var text = $('#'+textid).val();
    var textlength = text.length;

    if (textlength > limit) {
        alert("Number of characters exceeded!");
        $('#'+textid).val(text.substr(0,limit));
        return false;
    }else{
        $('#' + infodiv).html(''+ (limit - textlength) +'');
        return true;
    }
}

$(document).ready(function() {
    $("#normal").click(function() {
            $('#infodiv').show();
            $('#infodiv2').hide();
            $('#normal_message').val('');
            $('#normal_message').bind('keyup keydown click',function(){
                limit_char_normal('normal_message', 153, 'infodiv');
            });
    });
    $("#unicode").click(function() {
            $('#infodiv2').show();
             $('#infodiv').hide();
            $('#normal_message').val('');
            $('#normal_message').bind('keyup keydown click',function(){
                limit_char_normal('normal_message', 63, 'infodiv2');
            });
    });
});

<input type="radio" name="normal_message" value="normal" id="normal">Normal
<input type="radio" name="normal_message" value="unicode" id="unicode">Unicode

<textarea rows="4" cols="50" name="normal_message" class="normal_message" id="normal_message" placeholder="Hello Message">
</textarea>

    <p id="infodiv" style="display:none;">153</p>
    <p id="infodiv2" style="display:none;">63</p>

当我点击普通按钮时,function工作正常。点击正常按钮后我点击unicode按钮它工作正常,字符扣除没有问题。

单击unicode按钮并单击恢复正常后,只需调用函数limit_char_unicode(),从不调用limit_char_normal()函数。

我已将jsfiddle包含在内供您参考。

http://jsfiddle.net/caocao89/FMNSt/

如果你能提供帮助,那将是很棒的。

1 个答案:

答案 0 :(得分:0)

您已经定义了一个名为limit_char_unicode的函数,并且不会从任何地方调用它。

$("#unicode").click(function() {
            $('#infodiv2').show();
             $('#infodiv').hide();
            $('#normal_message').val('');
            $('#normal_message').bind('keyup keydown click',function(){
                limit_char_normal('normal_message', 63, 'infodiv2');
            });
    });

在上述功能中将limit_char_normal更改为limit_char_unicode,然后尝试。