ورود

View Full Version : طریقه ی اضافه کردن به گزینه های کمبوباکس در اینترنت اکسپلورر



tabib_m
جمعه 01 اردیبهشت 1385, 16:56 عصر
با سلام
من برای اضافه کردن به گزینه های یک کمبوباکس از کد زیر استفاده میکنم:


newOptionName=new Option('TITLE','VALUE','','');
var tedad=document.all['SELECTNAME'].options.length;
document.all['SELECTNAME'].options[tedad] = newOptionName;

این کد در فایرفاکس جواب میده
ولی در اینترنت اکسپلورر مشکل داره
چیکار کنم که در هر دو نمایشگر بتونم این کار رو بکنم؟

البته اروری که اینترنت اکسپلورر میده اینه :
The server threw an exception

pooyanm
شنبه 02 اردیبهشت 1385, 15:56 عصر
این که در IE6.0 من مشکلی نداره یک نگاه دیگه بهش بکن

tabib_m
شنبه 02 اردیبهشت 1385, 22:27 عصر
باور کن ارور میده
توی فایر فاکس درسته
ولی توی IE خرابه

راه استانداردش همینه؟

pooyanm
یک شنبه 03 اردیبهشت 1385, 06:07 صبح
این درست کار می کنه:



<script>
newOptionName=new Option('TITLE','VALUE','','');
var tedad=document.all['SELECTNAME'].options.length;
document.all['SELECTNAME'].options[tedad] = newOptionName;
</script>

pooyanm
یک شنبه 03 اردیبهشت 1385, 06:09 صبح
اگر نشد احتمالا باید کد رو در یک صفحه به تنهایی تست کنی.

pooyanm
یک شنبه 03 اردیبهشت 1385, 06:14 صبح
یعنی این که کد شما به تنهایی جواب می ده ولی درون صفحه اصلی تعریفات دیگری هست که کار اون رو به هم می ریزه مثلا یک tag که بسته نشده.

pooyanm
یک شنبه 03 اردیبهشت 1385, 06:18 صبح
اگر بازهم درست نشد یک تکه از کد رو بفرست.

pooyanm
یک شنبه 03 اردیبهشت 1385, 06:19 صبح
اگر بازهم درست نشد یک تکه از کد رو بفرست.

tabib_m
یک شنبه 03 اردیبهشت 1385, 09:40 صبح
توی یک صفحه به صورت جدا تست کردم ، شد.
راستش من این کد رو از صفحه ای که به صورت popup باز شده ، به صفحه ی مادر میفرستم
یعنی میشه :


newOptionName=new Option('TITLE','VALUE','','');
var tedad=window.opener.document.all['SELECTNAME'].options.length;
window.opener.document.all['SELECTNAME'].options[tedad] = newOptionName;

ولی جواب نمیده
میتونه مشکل به خاطر این باشه که دستور از یک صفحه ی دیکه میات؟

اخه مسئله اینه که دقیقا همین کد ، توی فایرفاکس جواب میده، ولی توی ie جواب نمیده.

pooyanm
دوشنبه 04 اردیبهشت 1385, 05:53 صبح
دلیل این مشکل اینه که نمی شه object هایی را ایجاد کنی و به صفحه دیگر اضافه کنی چون با بسته شدن popup این شی از بین می ره.

pooyanm
دوشنبه 04 اردیبهشت 1385, 05:54 صبح
احتمالا در firefox این object ها پس از ارجاع از پنجره دیگر از بین نمی رن.

لوک خوش شانس
دوشنبه 04 اردیبهشت 1385, 05:59 صبح
برا IE باید یه ID تعریف کنی برای کامبو باکست .

pooyanm
دوشنبه 04 اردیبهشت 1385, 06:22 صبح
خوشبختانه انواع اصلی js و شی string مشکل فوق را ندارند پس کد زیر را استفاده کن:



<select id=SELECTNAME><option>aaaaaabbb</option></select>
<script>
window.open('popup.html');
function add(optionText, optionValue, defaultSelected, selected) {
document.all['SELECTNAME'].options[document.all['SELECTNAME'].options.length] =
new Option(optionText, optionValue, defaultSelected, selected);
}
</script>
_______________________popup.html_________________ ____
<script>
window.opener.add('Title', 'val', '', true);
</script>

pooyanm
دوشنبه 04 اردیبهشت 1385, 06:25 صبح
آقای لوک خوش شانس یک نگاهی به پست ها هم بکنی ضرر نداره یک چیزی که واضحه id در اون هاست.

لوک خوش شانس
دوشنبه 04 اردیبهشت 1385, 07:23 صبح
آقای لوک خوش شانس یک نگاهی به پست ها هم بکنی ضرر نداره یک چیزی که واضحه id در اون هاست.
من نمیدونم چرا هر چی نگاه می کنم چزی ، آثاری از ID در پست های قبلی نمیبینم .
شما که داری به پست جواب میدی چرا اصلاً نگاه نمیکین بابم جان .

newOptionName=new Option('TITLE','VALUE','','');
var tedad=document.all['SELECTNAME'].options.length;
document.all['SELECTNAME'].options[tedad] = newOptionName;


<script>
newOptionName=new Option('TITLE','VALUE','','');
var tedad=document.all['SELECTNAME'].options.length;
document.all['SELECTNAME'].options[tedad] = newOptionName;
</script>


newOptionName=new Option('TITLE','VALUE','','');
var tedad=window.opener.document.all['SELECTNAME'].options.length;
window.opener.document.all['SELECTNAME'].options[tedad] = newOptionName;

ولی بعد از این که من اینو مطرح کردم ID در این پست (http://haha8.runsky.com/forum/images/smilies/p04.gif) لحاظ شد http://haha8.runsky.com/forum/images/smilies/p04.gif