اشکال در استفاده از شیء form در جاوا اسکریپت هنگام استفاده از masterpage ها
من یک پروژه وب سایت بصورت مستر ایجاد کرده ام در داخل صفحه default که از مستر استفاده میکند میخواهم با استفاده از جاوا با انتخاب یک چک باکس یک دکمه فعال بشود ولی شیء form1 را در آن نمی شناسد.
کدهای زیر داخل اسکریپت و در فرم default نوشته شده است ولی از آنجایی که form1 در فایل مستر است در default شناخته نمیشود.
cAgree چک باکس مربوطه است و bAccessTop و bAccessBottom دکمه هایی هستند که باید با تایید چک باکس فعال شوند.
function cAgree_onclick() {
form1.bAccTop.disabled = !cAgree.checked;
form1.bAccBottom.disabled = !cAgree.checked;
}
لطفا راه حلی برای این مشکل ارایه دهید. با تشکر.
نقل قول: اشکال در استفاده از شیء form در جاوا اسکریپت هنگام استفاده از masterpage ها
دوست عزیز این نحوه کد نوشتن جاوا اسکریپت را فراموش کن و از طریق متد Documnet.GetElemntbyID عمل کن
در ضمن کنترل های سرور ساید پس از Generate شدن تغییر نام می دهند بنابراین دلیلی نداره ID کنترل form1 شما با همان نام باقی مانده باشه چرا که form یک کنترل سرور ساید هست . همچنین در مورد سایر کنترل های سرور ساید .
پس روش شما غلطه ، روش درست به صورت زیر هست :
فرض می کنیم 2 تا Button و یک CheckBox داریم کد جاوا اسکریپت اصلاح شده :
function DoThis(B1,B2,Chk)
{
document.getElementById(B1).disabled = document.getElementById(Chk).checked;
document.getElementById(B2).disabled = document.getElementById(Chk).checked;
}
حالا کد زیر را داخل رویداد لود صفحه بنویس :
CheckBox1.Attributes.Add("onclick", "DoThis('" + Button1.ClientID + "','" + Button2.ClientID + "','" + CheckBox1.ClientID + "');")
موفق باشید
نقل قول: اشکال در استفاده از شیء form در جاوا اسکریپت هنگام استفاده از masterpage ها
از راهنماییت واقعا ممنونم دوست عزیز.
کنترلهایی که من بکار برده ام client side هستند (اشیاء Input) .
از طرف دیگر خصوصیت disabled برای document.getElementById(B1) و checked برای document.getElementById(Chk) وجود ندارد و کدهای فوق عمل نکرد.
البته من کنترلهای چک باکس و دکمه را Run as server کردم.:متفکر:
نقل قول: اشکال در استفاده از شیء form در جاوا اسکریپت هنگام استفاده از masterpage ها
دوست عزیز کد های من رو همونطور که هستند بکار ببر chk و b1 ورودی های تابع هستند !
در ضمن کنترل هارو به صورت کنترل ها asp.net بکار ببر نه html .
من این کدها رو نوشتم و تستش کردم کاملا عمل میکنه کمی تلاش کن