PDA

View Full Version : استفاده از تغییر در checkbox برای فراخوانی دستورات JavaScript



mehdi4467
شنبه 27 آذر 1389, 19:36 عصر
سلام
من یک Checkbox در صفحه گذاشته و با استفاده از خاصیت onChange تابع test1 را فراخوانی می کنم. به صورت زیر:

<?php $h = "hidden"; ?>
<input name="image_url" type="<?php echo $h; ?>" id="image_url" />سپس در فایل ajax.js این تابع رو به صورت زیر نوشته ام:

function test1()
{
change_box();
}و در همان صفحه ای که تگ checkbox را نوشته ام تابع change_box را به شکل زیر نوشته ام:

function change_box()
{
if(document.getElementById('checkbox').checked == true)
{
document.getElementById('image_url').type = "text";
document.getElementById('p1').innerHTML = "صرف نظر کنید http:// از";
}
else
{
document.getElementById('image_url').type = "hidden";
document.getElementById('p1').innerHTML = "";
}
} حال کد بالا در لوکال و در مرورگر فایر فاکس کار می کند ولی در مرور گر IE کار نمی کند و هیچ خطایی هم نمیدهد ولی وقتی که چند بار پشت سرهم روی چک باکس کلیک می کنم خطای زیر را میدهد:



Message: Could not get the type property. This command is not supported.
Line: 16
Char: 5
Code: 0
جالب ابنجاست که وقتی بر روی هاست چک می کنم در هیچ کدام از مرورگرها کار نمی کند.

mohsen6500
شنبه 27 آذر 1389, 22:58 عصر
سلام دوست عزیز این کد وسطی رو این طوریش کن ببین جواب میده


if(document.getElementById('checkbox').checked == true)
{
document.getElementById('image_url').type = "text";
document.getElementById('p1').innerHTML = "صرف نظر کنید http:// از";
document.getElementById ('image_url').value='true';
}
else
{
document.getElementById('image_url').type = "hidden";
document.getElementById('p1').innerHTML = "";
document.getElementById ('image_url').value='false';
}


البته اینا کد جاوا اسکریپت ها نه PHP !!!

درضمن من از کد اولت سر در نیاوردم خود حالت hidden توی input جواب میده دیگه واسه با PHP نوشتی؟!!!
البته شاید سواد من به این چیزا قد نمیده


موفق باشید

mehdi4467
شنبه 27 آذر 1389, 23:46 عصر
سلام
کد شما هم کار نکرد.

درضمن من از کد اولت سر در نیاوردم خود حالت hidden توی input جواب میده دیگه واسه با PHP نوشتی؟!!!

من برای این این قسمت رو پارامتری کردم که بتونم خاصیت type رو با جاوا اسکریپت کنترل کنم. hidden یا text

hossin.esm
یک شنبه 28 آذر 1389, 11:19 صبح
<?php $h = "hidden"; ?>
<input name="check" type="checkbox" checked="checked" id="checkbox" onClick="test1();" />
<input name="image_url" type="<?php echo $h; ?>" id="image_url" />
<div id=p1 ></div>
<SCRIPT language="javascript">
function test1()
{

change_box();

}

function change_box()
{




if(document.getElementById('checkbox').checked)
{
var obj=document.getElementById('image_url')
var newO=document.createElement('input');
newO.setAttribute('type','text');
newO.setAttribute('name','image_url');
newO.setAttribute('id','image_url');
obj.parentNode.replaceChild(newO,obj);
newO.focus();
document.getElementById('p1').innerHTML = "صرف نظر کنيد http:// از";

}
else
{
var obj=document.getElementById('image_url')
var newO=document.createElement('input');
newO.setAttribute('type','hidden');
newO.setAttribute('name','image_url');
newO.setAttribute('id','image_url');
obj.parentNode.replaceChild(newO,obj);
document.getElementById('p1').innerHTML = "";
}
}
</SCRIPT>

mehdi4467
دوشنبه 29 آذر 1389, 00:09 صبح
سلام
نه متاسفانه با کد بالا هم فرقی نکرد.

hossin.esm
دوشنبه 29 آذر 1389, 09:27 صبح
من این کد را با IE و FF و chrome تست کردم جواب داد. و مشکلی نداشت.