私はJavaScriptの初心者なので、あなたの助けが必要です. したがって、基本的にはondrop関数(validate)を実行しようとしているので、初めて何かをドロップすると、検証関数が実行され、phpからdiv値がドロップされます。しかし、2回目以降、同じdiv値を削除した場合、重複を警告してそのdiv要素(重複)を削除したいのですが、重複divの検出に失敗しました。
誰かが私のコードの何が問題なのか教えてもらえますか?
次のようなjavascript、php、およびhtmlがあります。
<script type="text/javascript">
function dragIt(target, e) {
e.dataTransfer.setData('div', target.id);
return false;
}
function validate(target, e){
var id = e.dataTransfer.getData('div');
var clone = document.getElementById(id).cloneNode(true);
var allValues = [];
for (i=0; i<clone.length; i++)
{
if (clone[i].value != "")
{
allValues[i] = clone[i].value.toLowerCase();
}
}
allValues.sort();
var uniqueValues = [];
var idx = 0;
var prevValue = allValues[0];
var currValue = allValues[0];
for (i=0; i<allValues.length; i++)
{
currValue = allValues[i];
if (currValue != prevValue){idx++;}
uniqueValues[idx] = currValue;
prevValue = currValue;
}
if (uniqueValues.length != allValues.length)
{
e.preventDefault();
clone.parentNode.removeChild(clone);
alert('Cannot submit duplicate entries');
return false;
}
else {
alert(clone.id);
e.preventDefault();
target.appendChild(clone);
return true;
}
}