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;

そのため、alwasys1が表示されています。

したがって、グローバル変数を作成して使用します。お気に入り

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 に答える