0

私はこのコードを持っています。リストから値を選択してテキストエリアに渡すのに役立ちますが、誤って同じリスト値を押した場合に備えて複製したくありません。

これが私が得たものです:

window.onload = btnsInit;
function btnsInit()
{
  var i, a = document.getElementById('btns').getElementsByTagName('a');
  for (i = 0; i < a.length; ++i) {
    a[i].onclick = btnClick;
  }
}
function btnClick(e)
{
  document.getElementById('ta').value += '' + this.firstChild.nodeValue + '\n';
  xPreventDefault(e);
  trim();
  return false;
}
function xPreventDefault(e)
{
  if (e && e.preventDefault) e.preventDefault();
  else if (window.event) window.event.returnValue = false;
}

誰かアイデアはありますか?

ありがとう

4

1 に答える 1

2

チェックを試しましたか?

function btnClick(e)
{     
  if ( (document.getElementById('ta').value).indexOf(this.firstChild.nodeValue) ) < 0
      document.getElementById('ta').value += '' + this.firstChild.nodeValue + '\n';
  xPreventDefault(e);
  trim();
  return false;
} // haven't tested;

//デバッグ目的の場合

function btnClick(e)
{     
  console.log((document.getElementById('ta').value).indexOf(this.firstChild.nodeValue));
  console.log("ta =", document.getElementById('ta').value);
  console.log("value =", this.firstChild.nodeValue);
  if ( (document.getElementById('ta').value).indexOf(this.firstChild.nodeValue) ) < 0
      document.getElementById('ta').value += '' + this.firstChild.nodeValue + '\n';
  xPreventDefault(e);
  trim();
  console.log("#end ta =", document.getElementById('ta').value);
  return false;
} // haven't tested;
于 2012-08-01T15:30:30.847 に答える