2015-02-10 81 views
0

經過一個非常有效和有益的迴應我的問題在這裏:javascript text field counter display我沒有一個額外的問題。代碼(如下所示)奇妙地工作,但它只在按鍵後顯示。我如何調整它,以便它不僅在按鍵上更新,而且在頁面加載後顯示,以便用戶可以在焦點位於字段和類型之前看到字符數量?通常(但不是總是)會在先前會話中保存的文本字段中存在文本,因此它們需要從那裏取回。javascript文本字段計數器顯示負載以及鍵盤上顯示

使用代碼當前:

$(window).load(function() { 
    $("#input_4_1").keyup(function() { 
     var diff = (2550 - $(this).val().length); 
     if (diff >= 501) { 
      $("#count_4_1").html("<span style=\"color: #55a500;\">Characters remaining: " + diff + "</span>"); 
     } else if ((diff <= 500) && (diff >= 101)) { 
      $("#count_4_1").html("<span style=\"color: #ff6600;\">Characters remaining: " + diff + "</span>"); 
     } else if (diff <= 100) { 
      $("#count_4_1").html("<span style=\"color: #ff0000;\">Characters remaining: " + diff + "</span>"); 
     } 
    }); 
}); 

謝謝!

回答

1

你只需要打破這個功能,並在每次按鍵時調用onLoad。

$(window).load(function() { 
    var countChars = function(elm) { 
     var diff = (2550 - $(elm).val().length); 
     if (diff >= 501) { 
      $("#count_4_1").html("<span style=\"color: #55a500;\">Characters remaining: " + diff + "</span>"); 
     } else if ((diff <= 500) && (diff >= 101)) { 
      $("#count_4_1").html("<span style=\"color: #ff6600;\">Characters remaining: " + diff + "</span>"); 
     } else if (diff <= 100) { 
      $("#count_4_1").html("<span style=\"color: #ff0000;\">Characters remaining: " + diff + "</span>"); 
     } 
    }; 

    countChars("#input_4_1"); 
    $("#input_4_1").keyup(function() { countChars(this) });   
}); 

但我可能會建議重構的代碼位:

$(window).load(function() { 
    var countChars = function(elm, counter) { 
     var diff = (2550 - $(elm).val().length), 
      color = 'ff0000'; 

     if (diff > 500) { 
      color = '55a500'; 
     } else if (diff > 100) { 
      color = 'ff6600'; 
     } 

     $(counter).html('<span style="color: #' + color + ';">Characters remaining: ' + diff + '</span>'); 
    }; 

    countChars('#input_4_1','#count_4_1'); 
    $("#input_4_1").keyup(function() { countChars(this, '#count_4_1') }); 
}); 
+0

本嗨,我真的不跟隨。 JS noob在這裏!我試過用你所顯示的代碼來代替我的代碼,但是它實現了snot工作,並且原始的工作功能也被破壞了。我誤解了一些重要的東西,或者你有代碼錯誤嗎? – Cassandra 2015-02-10 01:27:06

+0

本我認爲你的最新更新假設只有一個字段發生這種情況。有多個字段 - 因此在開始時使用指定ID。 – Cassandra 2015-02-10 01:32:06

+0

本謝謝你!我認爲這非常合適,而且對於多個領域的代碼少得多。我可以很容易地創建另一個var countChar對var countChar2550,var countChar1024等幾個不同的字母數量,並根據具體情況調用任何我需要的。真棒,非常感謝。 :) – Cassandra 2015-02-10 01:51:25