我有一个DevExpress Mvc令牌扩展,用户将在其中插入多个项目。
使用javascript我将项目发送到控制器,这是正常的。
我的功能如下:
$(function() {
$("#btnSave").click(function () {
var name = window.ComboBox.GetValue();
var i;
var team = new Array();
var tokens = window.tokenBox.GetTokenCollection();
for (i = 0; i < tokens.length; i++) {
team.push(tokens[i]);
}
var s = new Array();
var ss = window.tokenBox2.GetTokenCollection();
for (i = 0; i < ss.length; i++) {
s.push(ss[i]);
}
var w = new Array();
var ww = window.tokenBox3.GetTokenCollection();
for (i = 0; i < ww.length; i++) {
w.push(ww[i]);
}
var o = new Array();
var oo = window.tokenBox4.GetTokenCollection();
for (i = 0; i < oo.length; i++) {
o.push(oo[i]);
}
var t = new Array();
var tt = window.tokenBox5.GetTokenCollection();
for (i = 0; i < tt.length; i++) {
t.push(tt[i]);
}
$.ajax({
type: "post",
url: '@Url.Action("Action","Controller")',
data: { name:name, team:team, s:s, o:o, w:w, t:t },
beforeSend: function () {
window.loadingPanel.Show();
},
success: function (response) {
$("#mainAjax").html(response);
window.loadingPanel.Hide();
}
});
});
});
我想使用一个函数,从令牌中获取项目并将它们放在一个数组中(不像上面那样重复代码),如下所示:
function GetTokenItems(token) {
var list = new Array();
var el = document.getElementsById(token);
var tokens = el.GetTokenCollection();
for (var i = 0; i < tokens.length; i++) {
list.push(tokens[i]);
}
return list;
};
此功能无效,错误说:
未捕获的TypeError:document.getElementsById不是函数
如何在函数中传递tokenBok like参数的Id,或/和我的函数有什么问题?
**Edit:**
我做了更正document.getElementById
,现在我收到了错误:
未捕获的TypeError:el.GetTokenCollection不是函数
答案 0 :(得分:0)
应该是document.getElementById(id)
:
通过其ID返回对元素的引用; ID是一个字符串,可用于标识元素;它可以使用HTML中的id属性或脚本来建立。
document.getElementById(...)
// ^ without s
答案 1 :(得分:0)
我找到了我的问题的答案,也许对其他人有帮助!
对于Devexpress mvc扩展就足以使用扩展名作为参数,不需要用document.getElementById
查找他,所以我的函数是这样工作的:
function GetTokenItems(token) {
var list = new Array();
var tokens = token.GetTokenCollection();
for (var i = 0; i < tokens.length; i++) {
list.push(tokens[i]);
}
return list;
};
现在我可以像这样调用这个函数:
var team=GetTokenItems(tokenBox);
正在努力!!!