كيف يمكنني الوصول إلى RUNAT = "الخادم" عنصر ASP باستخدام جافا سكريبت؟

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

  •  21-08-2019
  •  | 
  •  

سؤال

ويبدو أن الجميع يفعل ذلك (في المشاركات كود الخ) ... ولكن أنا لا أعرف كيف ': (

وكلما أحاول التعامل مع عنصر آسيا والمحيط الهادئ باستخدام جافا سكريبت أحصل على "عنصر باطل" أو "الوثيقة غير محددة"، وغيرها الخطأ .....

وجافا سكريبت يعمل بشكل جيد عادة، ... ولكن فقط عندما إضافة RUNAT = "الخادم" سمة لا يبدو عنصر غير مرئي لبلدي جافا سكريبت.

وسيكون موضع تقدير أي اقتراحات

شكرا، أندرو

هل كانت مفيدة؟

المحلول

وما ربما يحدث هو أن العنصر الخاص بك / التحكم هو ضمن واحد أو أكثر من الضوابط ASP.NET التي تكون بمثابة حاويات التسمية (الصفحة الرئيسية، ITemplate، معالج، الخ)، والتي تتسبب في المعرف الخاص به للتغيير.

ويمكنك استخدام "عرض المصدر" في المتصفح الخاص بك للتأكد من أن ما يحدث في HTML المقدمة.

إذا جافا سكريبت في صفحة ASPX، وأسهل طريقة للعمل مؤقتا حول ذلك هو <وأ href = "http://encosia.com/2007/08/08/robust-aspnet-control-referencing-in -javascript / "يختلط =" noreferrer "> استخدام العنصر ClientID الملكية . على سبيل المثال، إذا كان لديك عنصر تحكم تسمية TextBox1 التي أردت الرجوع عبر JS:

var textbox = document.getElementById('<%= TextBox1.ClientID %>');

نصائح أخرى

وإجراء runat="server" عنصر تغيير معرف العميل من هذا العنصر بناء على ما ASP.NET تسمية حاويات انها داخل. حتى إذا كنت تستخدم document.getElementById لمعالجة عنصر، سوف تحتاج إلى تمريرها الهوية الجديدة التي تم إنشاؤها بواسطة .NET. النظر في الملكية ClientId للحصول على هذا الرقم ولدت ... يمكنك استخدامه المضمنة في جافا سكريبت الخاصة بك مثل ذلك:

var element = document.getElementById('<%=myControl.ClientID%>');

إذا كان لديك النص:

<asp:TextBox id="txtText" runat="server" />

ويمكنك استخدامها:

var textBox=document.getElementById('<%=txtText.ClientID %>');

وأي WebControl يعرض نفس العقار ClientID.

وعلى الرغم من جميع تم الإجابة على السؤال، أعتقد أن وظيفة فقط بعض مزيد من المعلومات ...

وقدم ريك ستراهل تماما العمل اينترستينغ في جميع أنحاء لهذه المشكلة.

http://www.west-wind.com/WebLog/posts /252178.aspx

والحمد لله عندما يصل ASP NET 4.0، وسوف تسمح لك لتحديد exacly ما ال ID العميل سوف يكون!

http://www.codeproject.com/KB/aspnet/ASP_NET4_0ClientIDFeature.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top