0

因此,当我单击添加按钮时,它会检查输入字段中是否有文本,然后为其创建一个 div,然后将 +1 添加到计数器。问题是计数器;它只会添加+1,然后再次单击时什么也不做。当我删除一个 div 时,它 -1 就好了。所以是的,不会超过 1 或 -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>
4

3 回答 3

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

 }
于 2012-08-16T11:04:52.357 回答
2

var x = 0;导致问题。您将 x 声明为 0 并在每次调用时添加 1 validateForm()。所以文本框的值每次都设置为 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;
  }
}
于 2012-08-16T11:05:13.133 回答
1

你总是将 x 初始化为 0

var x = 0;

这就是为什么它总是显示 1。

所以创建一个全局变量并使用它。喜欢

var itemsCount = 0;

并在 validateForm() 函数中替换代码行

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

itemsCount += 1;
document.getElementById( "clicked" ).value = itemsCount ;
于 2012-08-16T11:06:04.660 回答