ورود

View Full Version : سوال: مشکل درفراخوانی تابع در رویداد کلیک(جاوااسکریپت)



h.alizadeh
دوشنبه 11 خرداد 1388, 21:30 عصر
سلام،

به قطعه کد من توجه کنید:




<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript">

function c()
{
alert("gdfghfdhd");
}

function test()
{

document.write("<input type='button' onClick='c();' value=' finish '/>");
}

</script>
</head>

<body>
<form action="#" name="form1" method="get">
<input type="button" value=" Test " onclick="test();"/>
</form>

</body>
</html>

من می خوام بعد از کلیک شدن بر روی دکمه ی تست دکمه ی فینینش نمایش داده شه که میشه و با کلیک روی فینیش تابع سی اجرا شه که نمیشه!



ایراد کارم چیه؟

raravaice
سه شنبه 12 خرداد 1388, 11:28 صبح
علت این هست که :
شما وقتی document.write میکنی عملا تمام سورس قبلی که داخل صفحه بوده از بین میره و فقط همان مواردی که write شده جایگزین میشه در صفحه پس دیگه تابعی به اسم c در سورس شما وجود خارجی نداره.

راه حل :
از استایل display استفاده کنید و در تابع جاوا اسکریپت کلید finish را display:none "پنهان" و display:block "نمایش" کنید.

موفق باشید

violet
یک شنبه 17 خرداد 1388, 11:58 صبح
از این استفاده کن:(DOM Element )


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript">
function c()
{
alert("gdfghfdhd");
}
function test()
{
document.getElementById('btn').value='finich';
var btn=document.getElementById("btn").attributes
btn[0].onclick=c();
}
</script>
</head><body>
<form action="#" name="form1" method="get">
<input type="button" id="btn" value=" Test " onclick="test();"/>
</form></body>
</html>

h.alizadeh
سه شنبه 19 خرداد 1388, 06:28 صبح
ممنونم ازتون ،

با نمایش اطلاعاتم در div و عدم استفاده از document.write مشکلم رفع شد.