2016-01-06 87 views
0

我有一個ajax調用,它傳遞給javascript +低於文本區域的長度。當用戶插入的新評論的長度爲< 100時,如腳本中那樣添加到表格中的新行。當長度大於100時,它會轉到另一個語句並且不會添加一行。無法獲得if語句正確的順序:將運行兩個語句

<script> 

function hideform(length) { 
var len = length; 
if (len <= '100') { 
var table = document.getElementById("comments"); 
    var row = table.insertRow(0); 
    var cell1 = row.insertCell(0); 
    var cell2 = row.insertCell(1); 
    cell1.innerHTML = "TIME"; 
    cell2.innerHTML = "<p id='commentsaved'></p>"; 
    } 
    if (len > '100') { 
    document.getElementById("Lengtherror").innerHTML = "<p>COMMENT TOO LONG</p>"; 
    } 
    } 
</script> 

一切完美,但如果我先插入註釋< 100和後插入一個長註釋。基本上會發生什麼是:

-I插入簡短評論:腳本運行並進入if(len < ='100')。行被添加。

- 下一頁,我插入註釋> 100,和腳本再次運行,但發生的事情是:

-I獲得評論過長的警告,也:一個新行被插入到表中,如如果還如果(len < ='100')正在運行。爲什麼是這樣??由於

如果我插入註釋的順序是:LONG,再短,一切都將正常運行

+1

請將「100」更改爲「100」,因爲您會比較數字,而不是字符串,因爲我認爲。 –

+0

好!將這樣做 – Snowmate

+0

您添加行並比做一個檢查。似乎倒退。 – epascarello

回答

0

它似乎工作... The JSFiddle here 我有正確的「如果」爲正確的對比(INT/INT而不是int/string)。

function hideform(length) { 
    var len = length; 
    if (len <= 100) { 
     var table = document.getElementById("comments"); 
     var row = table.insertRow(0); 
     var cell1 = row.insertCell(0); 
     var cell2 = row.insertCell(1); 
     var d = new Date(); 
     cell1.innerHTML = "TIME " + d.getSeconds() + '/' + d.getMinutes(); 
     cell2.innerHTML = "<p id='commentsaved'></p>"; 
    } 
    if (len > 100) { 
     var d = new Date(); 
     document.getElementById("Lengtherror").innerHTML = "<b><p>COMMENT TOO LONG</p>" + " at TIME " + d.getSeconds() + '/' + d.getMinutes() + "</b>"; 
    } 
    }