1

私は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;
        }
}
4

0 に答える 0