שלח תשובה

זירת השאלות

482
צפיות
0
תשובות

בעיה עם CloneNode

,‏ 10 באוגוסט, 2007

שלום. אני משכפל אובייקטים ע"י שימוש ב-CloneNode והוספתם ל-Tbody ע"י appendChild.
אני מנסה לוודא שהערכים שהוקלדו בטופס נכונים, הדבר מתבצע יפה מאוד. אך לאחר שאני מפעיל את הפונקציה ומשכפל את האובייקטים הגישה לשדות לא אפשרית עוד ע"י ציון שם השדה. בדקתי גם אולי השמות של השדות זהים, אבל השמות לא זהים.
הנה הפונקציה שאני משתמש(לקוחה מהאינטרנט):


nameNum = 1;
function addRow2(){
    var t = document.getElementById('test2');
    var tb = t.getElementsByTagName('tbody')[0];
    var tr0 = tb.childNodes[0];
    
    var myClone = tr0.cloneNode(true);
    var newInpt = myClone.getElementsByTagName('input');
    var newSel = myClone.getElementsByTagName('select');
    var newTa = myClone.getElementsByTagName('textarea');

    for (i=0; i<newInpt.length; i++){
        var newName = newInpt[i].name.substring(0,newInpt[i].name.search(/d/)) + nameNum;
        newInpt[i].setAttribute('name',newName);
        addNewEls(newName, newInpt[i].type);
    }
    for (i=0; i<newTa.length; i++){
        var newName = newTa[i].name.substring(0,newTa[i].name.search(/d/)) + nameNum;
        newTa[i].setAttribute('name',newName);
        addNewEls(newName, newInpt[i].type);
    }
    for (i=0; i<newSel.length; i++){
        var newName = newSel[i].name.substring(0,newSel[i].name.length-1) + nameNum;
        newSel[i].setAttribute('name',newName);
        addNewEls(newName, newInpt[i].type);
    }

nameNum++;
tb.appendChild(myClone);
    
}

הפונקציה פועלת יפה מאוד, והאובייקטים משוכפלים ללא בעיה מיוחדת.
יש לציין שלפני שאני לוחץ על כפתור השכפול, אני יכול להיכנס למאפיינים של האובייקט ע"י

document.forms("myForm").myFiels_1.value


אך כאשר אני מפעיל את הפונקציה, לא ניתן לעשות זאת יותר, זאת השגיאה שמתקבלת:


Object doesn't support this property ot method: '..'

אני יכול להשתמש ב-document.forms('myForm').elements[0], כדי לגשת לשדות בטופס, אך אני צריך לגשת לפי השם שלהם ולא לפי האינדקס.
אני מקווה שהבנתם. אשמח לעזרה.. תודה מראש..

תגיות:

0 תשובות

    שלח תשובה

    חדש! אחסון אתרים של וובמאסטר

    שירות אחסון אתרים
    המקצועי של וובמאסטר!

    מומחים באירוח אתרי
    WordPress, Joomla, Drupal

    • שרתי לינוקס עם CloudLinux, LiteSpeed
    • 1GB דיסק SSD, 10GB תעבורה חודשית
    • ממשק ניהול cPanel, תעודת SSL חינם

    עכשיו במחיר היכרות:
    רק 420 ש"ח לשנה!