2014-03-25 55 views
0

嗨操縱textarea的一切,我用下面的代碼將數據添加到我的文字面積 -使用Ajax時得到的數據

$('a#mod_description_onclick').click(function(){ 
    $('#MOD-DESCRIPTION').modal('show', {backdrop: 'static'}); 
    $.ajax({ 
     url: "tab.description.php", 
     success: function(response){ 
      $('#MOD-DESCRIPTION .modal-body').html(response); 
     } 
    }); 
}) 

和下面的代碼來算字符時typing-

$(document).ready(function(){ 
    var left = 2000 
    var txtrest = '<?php echo lang("SYSTEM_CHARECTERS_LEFT");?>'; 
    $('#text_counter').text(txtrest + ' ' + left); 

     $('#field-ta').keyup(function() { 

     left = 2000 - $(this).val().length; 

     if(left < 0){ 
      $('#text_counter').addClass("overlimit"); 
      $('#submit_description').attr("disabled", true); 
     } 
     if(left > 1950){ 
      $('#text_counter').addClass("overlimit"); 
      $('#submit_description').attr("disabled", true); 
     } 
     else{ 
      $('#text_counter').removeClass("overlimit"); 
      $('#submit_description').attr("disabled", false); 
     } 

     $('#text_counter').text(txtrest + ' ' + left); 
    }); 
}); 

這裏的幫助是我的tab.description.php文件的內容,由ajax調用以從我的mysql中獲取數據並刷新textarea的內容。

<textarea rows="5" maxlength="2000" class="form-control " id="field-ta" name="field-ta" > 
    <?php echo get_profile_value('5001') ?> 
</textarea> 

所以我的問題是,如果我硬編碼的textarea而不是使用我的字符計數器的ajax方法工作。或者換句話說,用ajax更新我的模式形式會阻止我的字符計數器不工作。

問題在哪裏?

感謝

回答

0

我不相信使用AJAX觸發事件KEYUP - 實際上只輸入到文本字段將觸發。我不知道最好的解決方案是什麼,但是這應該工作:

function countChars = function() { 
    left = 2000 - $(this).val().length; 

    if(left < 0){ 
     $('#text_counter').addClass("overlimit"); 
     $('#submit_description').attr("disabled", true); 
    } 
    if(left > 1950){ 
     $('#text_counter').addClass("overlimit"); 
     $('#submit_description').attr("disabled", true); 
    } 
    else{ 
     $('#text_counter').removeClass("overlimit"); 
     $('#submit_description').attr("disabled", false); 
    } 

    $('#text_counter').text(txtrest + ' ' + left); 
} 

$(document).ready(function(){ 
    var left = 2000 
    var txtrest = '<?php echo lang("SYSTEM_CHARECTERS_LEFT");?>'; 
    $('#text_counter').text(txtrest + ' ' + left); 

     $('#field-ta').keyup(countChars); 
}); 

請注意,我已經提取的keyup事件到另一個函數,以便它可以通過AJAX溫控功能調用,如下:

$('a#mod_description_onclick').click(function(){ 
    $('#MOD-DESCRIPTION').modal('show', {backdrop: 'static'}); 
    $.ajax({ 
     url: "tab.description.php", 
     success: function(response) { 
      $('#MOD-DESCRIPTION .modal-body').html(response); 
      countChars(); 
     } 
    }); 
}) 

或者,您可以觸發手動keyup事件,像這樣:

$('a#mod_description_onclick').click(function(){ 
    $('#MOD-DESCRIPTION').modal('show', {backdrop: 'static'}); 
    $.ajax({ 
     url: "tab.description.php", 
     success: function(response) { 
      $('#MOD-DESCRIPTION .modal-body').html(response); 
      $('#MOD-DESCRIPTION .modal-body').trigger('keyup'); 
     } 
    }); 
}) 

我希望這可以指導您正確的方向。

0

的問題是,字符計數器由keyup事件觸發,但使用AJAX不發出keyup事件