كيفية الوصول إلى كائن سياق كصفيف في PageMethods رد
-
03-07-2019 - |
سؤال
وأنا لا يمكن أن يبدو للوصول إلى كائن سياق باستخدام سياق حلقة ومن المقرر: var context = [id1, id2, id3];
وهذه وظيفة رد تعمل:
function OnChangeSucceeded(result, context, methodName) {
document.getElementById(context[0]).disabled = result;
document.getElementById(context[1]).disabled = result;
document.getElementById(context[2]).disabled = result;
}
وفشلت هذه الدالة رد:
function OnChangeSucceeded(result, context, methodName) {
for(var indx = 0; indx < context.length; indx++) {
document.getElementById(context[indx]).disabled = result;
}
}
المحلول 3
وولهذا لمؤشر الحرائق tvanfosson.
ولقد إعادة بنائه وظيفة، وأنه يعمل الآن على النحو التالي:
function OnChangeSucceeded(result, context, methodName) {
for (controlId in context) {
document.getElementById(context[controlId]).disabled = result;
}
}
ولست متأكدا إذا كان ذلك بسبب السياق تم إنشاؤها الأصلي على النحو التالي:
context = [id1, id2, id3];
والتي أشرت الآن استبدال:
context = new Array(id1, id2, id3);
نصائح أخرى
وسيكون في متناول اليد لنرى رمز الدعوة بحيث يمكننا أن نرى كيف يتم تأسيس السياق الخاص بك. انا ذاهب الى اعتقد ان كنت قد إعداده كجمعية وليس صفيف بحيث عندما تذهب لاستخدامه في الاستدعاء، ليس هناك خاصية طول (أو أنها 0).
عند إعداده يجب أن تبدو:
var context = new Array();
context[0] = 'elem0';
context[1] = 'elem1';
context[2] = 'elem2';
وليس
والسياق فار = {0: 'elem0'، 1: "elem1، 2:" elem2 '}؛
وإذا كان هذا ليس هو المشكلة، ثم حاول سحبه في فايرفوكس / مصاب بهوس الاحراق عن طريق وضع نقطة توقف في وظيفة onChangeSucceeded ودراسة الكائن السياق الفعلي لمعرفة ما الخصائص لديه.
هل هو بسبب الخطأ المطبعي الخاص بك؟
for(var index = 0; indx < context.length; indx++) {
يجب أن يكون
for(var indx = 0; indx < context.length; indx++) {