【发布时间】:2020-06-15 14:48:38
【问题描述】:
编辑:codepen 在这里:https://codepen.io/jeqp/pen/eYNEjoR
我正在使用其他人在 Materialize 中创建的表单,并且我正在尝试将该表单的用户输入获取到一个对象中。我在控制台日志中收到以下错误:
未捕获的类型错误:无法读取未定义的属性“修剪”
表单是在循环中创建的,我将在其中包含一个输入。
var userForm = $("#userConfirmTable");
var createLi = $("<li>").addClass("col m12 userConfirmList");
var createBox = $("<div>").addClass("input-field col s10");
var createLabel = $("<label>").attr("for", labelFor);
var createBtn = $("<button>").addClass("col s2 waves-effect waves-light btn btnDelete");
var createMinus = $("<i>").addClass("fa fa-minus");
for (var c = 0; c < createLi.length; c++) {
var idNum = c;
}
if (labelFor == "titleName") {
var createInput = $("<input>").attr("type", "text").attr("id", "titleInput");
createBtn.attr("id", "titleBtnDel")
// createLi.attr("id", "titleInput");
createBtn.append(createMinus);
createLabel.text(textFor);
createBox.append(createInput);
createBox.append(createLabel);
createLi.append(createBox);
createLi.append(createBtn);
userForm.append(createLi);
var btnRemove = ".btnDelete";
removeDiv(btnRemove);
};
然后我尝试通过以下方式获取输入:
console.log("btnconfirm clicked");
console.log("titleInput: " + JSON.stringify($("#titleInput")));
event.preventDefault();
var e = document.getElementById("titleInput");
console.log("e: " +e);
console.log("e.textcontent: " + e.textContent);
// make a new website obj
var newWebsite = {
// title
title: $("#titleInput").val().trim(),
// tagline
在 Chrome 的 Elements 部分中,我可以看到 titleInput ID 位于表单的输入部分中: 但 titleInput 的 console.log 返回:titleInput: {"0":{},"length":1},我期待一个字符串。
我在文档中找不到任何内容,也无法确定返回的内容以及从何处返回。任何帮助表示赞赏。
【问题讨论】:
-
你能建一个codepen吗?我们无法测试这段代码,因为 labelFor 没有定义。
-
我在这里创建了一个:codepen.io/jeqp/pen/eYNEjoR
标签: javascript jquery forms typeerror materialize