2012-08-16 38 views
0

因此,当我点击添加按钮时,它会检查输入字段中是否有文本,然后为它创建一个div,然后将+1加到计数器。问题是柜台;它只增加+1,然后再次点击时什么也不做。当我删除一个div它确实很好。所以是的,不会超过1或-1。Javascript计数器不会超过1

网站:

http://web-owl.com/todo/

功能:

function validateForm() 
      { 
       var x=document.forms["forming"]["texting"].value; 
       if (x==null || x=="") 
       { 
       alert("Get it together! You need to have text in there!"); 
       return false; 
       } 
       else 
       { 

      var clone = $('#theDiv') 
       .clone() 
       .attr('id','') 
       .show() 
       .append(
       $('<div>').html(
       $('#textI2').val() 
       ).addClass('futureEditor') 
       ); 
       $('#hold').append(clone) 
       var x = 0; 
      x += 1; 
      document.getElementById("clicked").value = x; 
       return false; 
       } 

      } 

被点击链接:

<form id="forming" name="forming" onsubmit="return validateForm()" method="post"> 

计数器:

<p>You have <input id="clicked" size="3" onfocus="this.blur();" value="0" > Stuffs. </p> 

回答

2

让您的计数变量全球

var count = 0; 
function validateForm() { 
    var x = document.forms["forming"]["texting"].value; 
    if (x == null || x == "") { 
     alert("Get it together! You need to have text in there!"); 
     return false; 
    } 
    else { 

     var clone = $('#theDiv').clone().attr('id', '').show().append(
     $('<div>').html(
     $('#textI2').val()).addClass('futureEditor')); 
     $('#hold').append(clone) 
     count++; 
     document.getElementById("clicked").value = count; 
     return false; 
    } 

} 
+0

是的,这个伟大的工程!谢谢。 – 2012-08-16 11:18:26

2

var x = 0;引起的问题。你声明x为0,每次你拨打validateForm()时加1。所以文本框的值每次都设置为1。这里的固定码:

var x = 0; 
function validateForm() { 
    if (x==null || x=="") { 
    alert("Get it together! You need to have text in there!"); 
    return false; 
    } 
    else { 
    var clone = $('#theDiv') 
     .clone() 
     .attr('id','') 
     .show() 
     .append(
     $('<div>').html(
      $('#textI2').val() 
     ).addClass('futureEditor') 
    ); 
    $('#hold').append(clone) 
    x++; 
    document.getElementById("clicked").value = x; 
    return false; 
    } 
} 
+0

这很有道理,谢谢。 – 2012-08-16 11:12:19

1

你总是初始化x到0

var x = 0; 

这就是为什么它显示alwasys 1

因此,让一个全局变量并使用它。像

var itemsCount = 0; 

和validateForm()函数替换代码

var x = 0; 
x += 1; 
document.getElementById("clicked").value = x; 

线

itemsCount += 1; 
document.getElementById("clicked").value = itemsCount ;