كيفية الوصول إلى كائن سياق كصفيف في PageMethods رد

StackOverflow https://stackoverflow.com/questions/406552

  •  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++) {
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top