我有一段 JavaScript 代码循环遍历表单元素并构建一个对象。我混合了 HTML 输入字段和 ASP.NET 输入字段。ASP.NET 将字段的 ID 更改为 xxxxx_yyyy_id 的形式,所以我尝试使用 split 函数来提取原始 id。
// Iterate over all the text fields and build an object
$(':text').each(function () {
var tokens = this.id.split("_");
if (tokens.length = 3) {
// Assume this is a .net inputbox - extract the original id
inFormData[tokens[2]] = this.value;
} else {
inFormData[this.id] = this.value;
}
});
单步执行上面的代码,第一个id是ctl00_ContentPlaceHolderCol1_forenameField,所以就运行tokens.length = 3的代码。在第二次迭代中,id 是 forenameField2,所以我希望 tokens.length 为 1,但它实际上是 3。else 语句永远不会运行。
这可能很简单,但我无法解决。如果我检查令牌数组,它在第二次迭代中只有 1 个元素。我还尝试在每次迭代后将 array.length 设置为 0。
任何帮助表示赞赏。