2010-10-25 4 views
3

J'ai toujours utilisé ce code pour trier les éléments dans une liste puis renvoyer la commande dans la base de données.Ancienne aide javascript requise

Mais le code ne fonctionne pas dans Firefox ou Chrome. Il saute puis efface le contenu de la liste. Il a été utilisé depuis 2002 fonctionne très bien dans IE uniquement ..

var list; 

function moveUp() { 
    list = document.forms[0].lists; 
    var index = list.selectedIndex; 

    if (index > 0) { 
     var item = list.options[index]; 
     list.remove(index); 
     list.add(item, index - 1); 
    } 
} 
function moveDown() { 
    list = document.forms[0].lists; 
    var index = list.selectedIndex; 

    if (index > -1 && index < list.options.length - 1) { 
     var item = list.options[index]; 
     list.remove(index); 
     list.add(item, index + 1); 
    } 
} 
function doSubmit() { 
    var s = ""; 
    list = document.forms[0].lists; 
    for (var i = 0; i < list.options.length; i++) { 
     s += list.options[i].value + " "; 
    } 

    document.forms[0].order.value = s; 
    return false; 
} 
+1

Je ne vois pas où vous appelez 'moveUp' ou' moveDown' ... – Martin

+1

Avez-vous un exemple de html sur lequel cela fonctionne, de préférence avec des données fictives à tester avec. –

+0

d'où appelez-vous le 'doSubmit()'? un événement de soumission de formulaire? ou un lien 'javascript: ...'? –

Répondre

0

document.forms [0] .lists n'est pas défini dans Firefox ou Chrome. Je ne suis pas exactement sûr de ce que c'est, mais si ceux-ci ne le supportent pas alors c'est probablement une convention de dénomination non standard que IE fait.

Il est préférable d'accéder à votre liste en utilisant document.getElementById() et en donnant à la liste une valeur d'identifiant.

Pour référence future, le débogage avec Firefox se fait très facilement avec Firebug, vous devriez le vérifier si vous voulez faire du développement Javascript.

+1

Cela ne répond pas à la question. 'document.forms [0] .lists' est un champ avec' name = "lists" 'dans la première forme du document. Et à partir du code, c'est en fait un élément '