2012-03-31 61 views
1

工作這是難以追查,我作爲一個JS新手。的JavaScript不是在FF和IE

我寫一個簡單的(?)腳本,顯示我一個textarea下(這是指寫短信)有多少個字符的短信目前已經離開了,我有多少短信至今寫的。

我有我的頭下面的JavaScript:

<script type='text/javascript'> 
    function CheckCount(text, length) { 
     var MaxLength = new Number(length); 
     messages = Math.ceil(((text.value) ? text.value.length : 0)/160); 
     remaining = messages * 160 - (((text.value) ? text.value.length : 0) % (messages * 160) || messages * 160); 
     if (text.value.length == 0) { messages = 1; remaining = 160; } 
     document.getElementById('messages').innerText = messages + ' SMS'; 
     document.getElementById('remaining').innerText = remaining + ' Characters remaining'; 
    } 
</script> 

在該網站的身體,我把這個:

<textarea name="sms_text" cols="35" rows="5" onKeyUp="javascript:CheckCount(this,4000);" onChange="javascript:CheckCount(this,4000);"></textarea> 
<p style="margin-left:174px"> 
    <span id="remaining">160 Characters remaining</span> | 
    <span style="clear:both" id="messages">1 SMS</span> 
</p> 

這個工程在Opera,Safari和Chrome的罰款。 Firefox和IE有他們的問題。

請不要打我太多。我剛剛開始使用JavaScript,經過一天繁瑣的搜索後,我無法找到解決方案。 :)

回答

3

你並不需要包括 javascript:在您的textarea的處理器屬性:

雖然上面是真實的,你的問題是通過使用innerText造成的。更改爲innerHTML適用於FireFox。

http://jsfiddle.net/ZTRFA/1/

,並使其在IE8的工作,有必要聲明messagesremaining。我也刪除了冗餘線var MaxLength = new Number(length);

http://jsfiddle.net/ZTRFA/2/

function CheckCount(text, length) { 
     var messages = Math.ceil(((text.value) ? text.value.length : 0)/160); 
     var remaining = messages * 160 - (((text.value) ? text.value.length : 0) % (messages * 160) || messages * 160); 
     if (text.value.length == 0) { messages = 1; remaining = 160; } 
     document.getElementById('messages').innerHTML = messages + ' SMS'; 
     document.getElementById('remaining').innerHTML = remaining + ' Characters remaining'; 
} 
+0

這是真實的,具有[標號](https://developer.mozilla.org/en/JavaScript/Reference/Statements/label)沒有環是完全沒有意義的...但它不會破壞任何東西。 – Quentin 2012-03-31 11:08:53

+0

@Quentin - 很對,是的。我認爲我應該在發佈後檢查。 – shanethehat 2012-03-31 11:11:26

+0

事實上,這修復了FF問題(爲什麼FF不能處理InnerText?)。現在只剩下iE了。到達那裏。 :) 我將刪除JavaScript標籤。好的提示。謝謝。 – BigBonsai 2012-03-31 11:27:25