2013-08-27 70 views
1

只是一個我一直在努力的問題。我已經創建了兩個功能,如下所示:第二個函數不被稱爲

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/

這將是巨大的,如果你能幫忙。

+4

'limit_char_unicode'沒有在代碼中的任何地方被調用('limit_char_normal'被調用了兩次 - 可能是CTRL + C/CTRL + V的問題,它恰巧!) –

+0

由於Marlon sais,看起來像是個好時機一些睡眠:) –

+1

每次單擊收音機時,您都註冊了一個新處理程序......因爲您有keyup和keydown處理程序,所以這些處理程序正在發射一個瘋狂的次數......我可能會將其重寫爲http:// jsfiddle。 net/arunpjohny/6343F/2/ –

回答

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_normallimit_char_unicode在上述功能和嘗試。