无法使if语句的顺序正确:将运行两个语句

时间:2016-01-06 13:54:32

标签: javascript html

我有一个ajax调用,它传递到文本区域长度以下的javascript +。当用户插入的新注释的长度小于100时,会在脚本中添加新的rowgets。当长度大于100时,它会继续到另一个语句,并且不会添加一行。

<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>

一切都很完美,除非我首先插入评论&lt; 100并插入长评论。基本上会发生什么:

-I插入简短注释:脚本运行并进入if(len&lt; ='100')。行被添加。

-NEXT,我插入注释&gt; 100,脚本再次运行,但会发生的是:

- 我得到了COMMENT TOO LONG警告,但是:一个新行被插入到表中,就好像(len&lt; ='100')正在运行一样。为什么是这样??感谢

如果我插入评论的顺序是:LONG,那么SHORT,一切都会正常运行

1 个答案:

答案 0 :(得分:0)

似乎有效...... The JSFiddle here 我已经更正了“if”以进行正确的比较(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>";
    }
  }