我有一段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;
}
});
Run Code Online (Sandbox Code Playgroud)
单步执行上面的代码,第一个id是ctl00_ContentPlaceHolderCol1_forenameField,因此运行tokens.length = 3代码.在第二次迭代中,id是forenameField2所以我希望tokens.length为1,但它实际上是3. else语句永远不会运行.
这可能很简单,但我无法解决这个问题.如果我检查标记数组,它在第二次迭代中只有1个元素.我也尝试在每次迭代后将array.length设置为0.
任何帮助赞赏.