【问题标题】:array push() jQuery got TypeError: 'stepUp'数组 push() jQuery 得到 TypeError: 'stepUp'
【发布时间】:2025-12-03 20:50:01
【问题描述】:

我明白了

TypeError:在未实现接口 HTMLInputElement 的对象上调用了“stepUp”。

在这段代码中

jQuery(document).on("click",".save",function(){
      var message = "";
      var many = [];
      var id = jQuery("#id");
      jQuery(".list .beName").each(function(e){
        var row = e + 1;
        var bname = jQuery.trim(jQuery(this).val());
        if (bname == "") {
          message += "Please input name in row "+row+"\n";
        }
      });
      if (message != ""){
        alert(message);
        return false;
      }else{
        jQuery(".list .bename").each(function(){
            var bname = jQuery.trim(jQuery(this).val());
            if(bname != ""){
              many.push(bname);
              jQuery.ajax({
                type: "POST",
                dataType: "json",
                url: "ben_add.php",
                data:{
                  "id" : id,
                  "beName" : many,
                  "save" : true
                }
              });
            }
        });
      } 
 });

我想要的是获取 ma​​ny.push(bname);value/array/data 并将其发送到 jQuery.ajax >

.list<li>

.bename<input>

bename<input>名称

这里的其他细节是我的HTML

<div id="wrap">
<ul>
    <li class="list" id="<?php echo $id; ?>"><input type="text" class="beName" name="beName"><a href="#" class="remove">x</a></li>
</ul>
<a href="#" class="add">Add</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" class="save" name="save">Save</a>

我的 htmlappend();

【问题讨论】:

  • 我有点困惑,stepUp 是你创建的函数吗?
  • 去掉 " ",试试 id : id , bName : many 这样
  • @HectorLorenzo 先生,这是一种错误
  • 现在您的代码为每个输入发送请求。看来您需要将jQuery.ajax 部分从.each 循环中移开。
  • @ihemant360 我仍然遇到 stepUp 错误

标签: javascript jquery


【解决方案1】:

问题出在这一行,

var id = jQuery("#id");

当您尝试在 ajax 调用中传递 jQuery 对象时会发生错误。 Ajax 参数需要一个值,而不是 DOMElementHTMLInputElement

根据需要使用.val()text()

【讨论】:

  • 如果我想要一个 id 但很多名字我应该使用哪个? var id = jQuery("#id").text();var id = jQuery("#id").val();
  • 什么是#id?你需要显示你的html。如果是&lt;input&gt;,则使用.val(),否则使用text()。而许多/一个bename的传递并不依赖于此。
  • 我认为错误出在我的 html 中,因为我没有指定它的 id
【解决方案2】:

仅供参考。它确实是一个令人困惑的消息(stepup ... HTMLInputElement。)只需检查传递给 ajax、get 或 post 的变量。例如,将它们全部输出到控制台。可能其中一个变量没有正确初始化,

{

  action: 'find_sentences',
  nonce: namespace.nonce,
  find:  JSON.stringify({ data: this.source_array}),
  source_language: this.source_language,
  target_language: this.target_language,

}

【讨论】:

    最近更新 更多