【发布时间】:2015-05-14 09:44:56
【问题描述】:
我被 ASP.NET 中的回调和多选选择控件困住了。正如我所注意到的,微软自 2006 年以来就有一个错误(!),当我对选择为 1、2、3 的多选执行回调时,回发数据为 1、1、1。 我已经确定了问题所在,方法如下:
function WebForm_InitCallback() {
var formElements = theForm.elements,
count = formElements.length,
element;
for (var i = 0; i < count; i++) {
element = formElements[i];
var tagName = element.tagName.toLowerCase();
if (tagName == "input") {
var type = element.type;
if ((__callbackTextTypes.test(type) || ((type == "checkbox" || type == "radio") && element.checked))
&& (element.id != "__EVENTVALIDATION")) {
WebForm_InitCallbackAddField(element.name, element.value);
}
}
else if (tagName == "select") {
var selectCount = element.options.length;
for (var j = 0; j < selectCount; j++) {
var selectChild = element.options[j];
if (selectChild.selected == true) {
WebForm_InitCallbackAddField(element.name, element.value);
}
}
}
else if (tagName == "textarea") {
WebForm_InitCallbackAddField(element.name, element.value);
}
}
}
element.value 没有传递正确的值,但 selectedChild.value 在“选择”标签中。
即使我发现了问题,并且我知道如何覆盖此方法,但我不相信这会奏效。覆盖来自资源的 JavaScript 方法是否正确?你建议我这样做吗?
谢谢。
【问题讨论】:
标签: javascript c# asp.net callback embedded-resource