【问题标题】:TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElementTypeError:在未实现接口 HTMLInputElement 的对象上调用了“stepUp”
【发布时间】:2013-11-01 10:48:39
【问题描述】:

我在使用 AJAX 时出错:

TypeError: 'stepUp' 在未实现接口 HTMLInputElement....plete",[C,p]),--x.active||x.event.trigger("ajaxStop")) 的对象上调用)}return C},getJSON:functi...

这是我使用它的代码部分:

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

这是我的 javascript 代码,适用于我之前定义的复选框:

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 );*/
        });
    }
}

我试过了,但它不起作用,也没有给我任何错误。

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 );*/
});

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    $.ajax 在您传递给data 的对象中不期望HTMLInputElement 类型的DOMElement。尝试只给它字段的值:

    var wordid = $('.wordId').val();
    $.ajax({
        url: "assigner.php",
        type: "POST",
        data: { wordid: wordid, assign: assign}
    }).done(function( e ) {
        /*alert( "word was saved" + e );*/
    });
    

    【讨论】:

    • wordId 是复选框数组的名称,我想将它们中的每一个发送到 assigner.php 我该怎么办? echo "";
    • 很好的解决方案。它通过阅读第一行的前几个字解决了我的问题;)
    • @Rory:你是个天才。
    【解决方案2】:

    您将获得所有复选框值,如下所示。

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

    然后将变量'newvalue'的值传递给assign.php文件。希望这对您有所帮助。

    【讨论】:

    • 我试了你说的但是不行,我把我的代码放在上面了。
    • 你是否将复选框的名称定义为wordid[]
    • 这种方式将第一个单词发送到 assigner.php 并设置 wordid=0 总是我想发送所有单词
    • 好的..我知道了..请将文本框的名称定义为 wordid[] 而不是 wordid[0], wordid[1].. 使用上面的代码你会得到一个字符串在“newvalue”中,wordid 的所有值用逗号分隔。你可以在assigner.php中使用explode()分割这个字符串。
    • 把输入框这样放。同名,价值观不同。
    猜你喜欢
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 2014-03-24
    相关资源
    最近更新 更多