ورود

View Full Version : مبتدی: علت این ارور چیست؟ Unable to get value of the property 'style': object is null or undefined



pedram114
پنج شنبه 09 آذر 1391, 00:20 صبح
بچه ها من یک کد جاوا اسکریپت دارم که به این شکله
function mouseoverTextBoxName() {
document.getElementById("<%=TextBoxName.ClientID%>").style.borderColor = "red";}

وقتی این کد رو داخل خود برامه می زارم هیچ مشکلی نداره ولی وقتی این کد رو داخل فایل با پسوند js می زارم این ارور رو می ده :
Unable to get value of the property 'style': object is null or undefined
توی فایل js منم فقط تابع بالا وجود داره یعنی این :
function mouseoverTextBoxName() {
document.getElementById("<%=TextBoxName.ClientID%>").style.borderColor = "red";}

در حالتی که از فایل استفاده می کنم این تگ رو هم به برنامه اضافه می کنم
<script language="javascript" src="./scripts/javascript_function.js">

مشکل چیه؟

hakan648
جمعه 10 آذر 1391, 03:44 صبح
سلام

مقدار <%=TextBoxName.ClientID%> توسط ASP.NET با ID ِ کنترل تعویض میشه و این تعویض فقط در صفحاتی که توسط ASP.NET رندر میشن اتفاق میوفته ( .aspx ) ، پس صحیح هست که در یک فایل .js این تغییر صورت نگیره .

( برای درک بهتر ، به مقدار رندر شده ی عبارت فوق رو در صفحه ی .aspx و .js توجه کنید. )

برای حل این مشکل میتونید ID رو بصورت پارمتر به تابع ارسال کنید :

در فایل .js :

function mouseoverTextBoxName(id) {
document.getElementById(id).style.borderColor = "red";}
}


در صفحه ی .aspx :


<script type="text/javascript">
mouseoverTextBoxName("<%=TextBoxName.ClientID%>");
</script>