TypeError: 'stepUp' fait appel à un objet qui n'implémente pas l'interface htmlinputelement

j'ai une erreur dans mon utilisation d'AJAX:

TypeError:' stepUp ' appelle un objet qui n'implémente pas l'interface htmlinputelement....plete", [C, p]),--X. active / / X. événement.trigger("ajaxStop")))}return C},getJSON:functi...

Voici les parties de mon code où je l'utiliser:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

c'est mon code javascript qui fonctionne sur les cases à cocher où je les ai définies avant:

function feedback() {
    var boxes = document.getElementsByClassName('box');
    for (var j = 0; j < boxes.length; j++) {
        if (boxes[j].checked) {
            //assign(1);
            assign = 1;
        } else {
            assign = 0;
            //assign(0);
        }
        var wordid = document.getElementsByClassName('wordId')[j];
        $.ajax({
            url: "assigner.php",
            type: "POST",
            data: {
                wordid: wordid,
                assign: assign
            }
        }).done(function(e) {
            /*alert( "word was saved" + e );*/
        });
    }
}

j'ai essayé ceci mais ça ne fonctionne pas et il ne me donne pas toutes les erreurs.

var newvalue = '';
$('input[name=wordid[]]').each(function(index, element) {
    newvalue = newvalue + this.value + ',';
});
$.ajax({
    url: "assigner.php",
    type: "POST",
    data: {
        wordid: newvalue,
        assign: assign
    }
}).done(function(e) {
    /*alert( "word was saved" + e );*/
});
30
demandé sur Rory McCrossan 2013-10-23 12:45:07

2 réponses

$.ajax n'attend pas un DOMElement de type HTMLInputElement dans l'objet que vous passez à data. Essayez juste de donner la valeur du champ à la place:

var wordid = $('.wordId').val();
$.ajax({
    url: "assigner.php",
    type: "POST",
    data: { wordid: wordid, assign: assign}
}).done(function( e ) {
    /*alert( "word was saved" + e );*/
});
65
répondu Rory McCrossan 2013-10-23 08:47:33

Vous obtiendrez toutes les valeurs de la case à cocher comme suit.

var newvalue='';
$('input[name=wordid\[\]]').each(function(index, element) {
                        newvalue=newvalue+this.value+',';
                    });

puis passer la valeur de la variable 'newvalue' à l'attribut.fichier php. Espérons que cela peut vous aider.

0
répondu Girish Sasidharan 2013-10-23 10:20:39