2011-01-21 69 views
0

首先,如何在javascript中使用var存儲超過10位數的數字?

我在做什麼? 我必須在網頁中設置我們產品中的電子郵件的限制。它的處理與JavaScript驗證。它處理多達8位數字罰款。但是在我們的QA團隊中,在其他電子郵件字段的文本框中輸入了超過17位的數字。它會拋出負面信息。我該怎麼辦?

我的示例代碼:

if(form.otherEmails) { 
      if(validEmailArray.endsWith(',')){ 
       var otherEmailLength = validEmailArray.substring(0,validEmailArray.length-1).split(","); 
       var setLimitOtherEmail = window.parent.document.getElementById('setLimitOtherEmail').value; 

       if(setLimitOtherEmail == '-1'){ 
        form.otherEmails.value = otherEmailLength; 
       } 
       else if(otherEmailLength.length <= setLimitOtherEmail){ 
        form.otherEmails.value = otherEmailLength; 
       } 
       else{ 
        alert("More than "+setLimitOtherEmail+ " " +"Recipient emailIds not allowed in this section.\nIf you want to send it to more recipients, Please create a Bulk Contact Group."); 
        form.otherEmails.focus(); 
        return false; 
       } 

      } 
      else 
       form.otherEmails.value = validEmailArray; 
     } 

回答

0

嘗試對他們進行任何比較操作之前,每個號碼解析爲整數。 var setLimitOtherEmail = parseInt(window.parent.document.getElementById('setLimitOtherEmail').value);

除此之外,你確定otherEmailLength實際上是你想要的數字嗎?從它的外觀來看,你正在使用validEmail數組的子串,並將它拆分爲「,」但它看起來並不像你實際得到數組的長度。嘗試將.length添加到otherEmailLength值的末尾。

var otherEmailLength = validEmailArray.substring(0,validEmailArray.length-1).split(",").length; 
+0

非常感謝你的人.........你的代碼工作正常。 – 2011-02-03 14:06:58

2

這是由於這樣的限制是一個字符串,並且當一個字符串被比較的數(長度)的數量被強制轉換爲字符串,而不是周圍的其他方法。

然後這些比較字典順序 - 和字典順序 「9」 是更多(>)大於 「19」。

您需要使用parseInt(setLimitOtherEmail, 10)比較之前獲得的值作爲一個數字。

+0

謝謝你的回覆,它已經解決了 – 2011-02-03 13:50:22

相關問題