замяна на падащо меню с текстово меню в javascript

Опитвам се да заменя падащо меню, което имам, с текстово поле, ако някой избере опцията „друго“. Точно сега в кода си го замествам с елемент на абзац, защото ме мързи да намеря точните аргументи на конструктора за настройка на текстово поле. Когато обаче е избрано „друго“, нищо не се случва.

Някой знае ли какво не е наред с това?

<html>
<head>
<script type="text/javascript">
function testfunc(arg) {
    if(arg.value == "other") {
        document.thing.replaceChild(document.test, document.thing.selection)
    }
    else {
        alert("stuff")
    }
}
</script>
<body>
<form name="thing">
<select name="selection" onchange="testfunc(document.thing.selection.options[document.thing.selection.selectedIndex])">
<option>yes</option>
<option>no</option>
<option>other</option>
</select>
</form>
<p name="test">lkjsdf</p>
</body>
</html>

person SummerCodin    schedule 11.09.2010    source източник


Отговори (3)


функцията трябва да е такава! Друго не друго! чувствителен е към главни и малки букви (на Linux така или иначе... не съм сигурен за други операционни системи) В противен случай благодаря... търсих този... готин начин за показване/скриване

<script type="text/javascript">
function show_txt(arg,arg1)
{
if(document.getElementById(arg).value=='Other')
{
document.getElementById(arg1).style.display="block";
document.getElementById(arg).style.display="none";
}
else
{
document.getElementById(arg).style.display="block";
document.getElementById(arg1).style.display="none";
}
}
</script>
person Stan    schedule 04.02.2011

function show_txt(arg,arg1)
{
if(document.getElementById(arg).value=='other')
{
document.getElementById(arg1).style.display="block";
document.getElementById(arg).style.display="none";
}
else
{
document.getElementById(arg).style.display="block";
document.getElementById(arg1).style.display="none";
}
}

HTML кодът тук:

<select id="arg" onChange="show_txt('arg','arg1');">
<option>yes</option>
<option>No</option>
<option>Other</option>
</select>
<input type="text" id="arg1" style="display:none;">
person Gitesh Dang    schedule 11.09.2010

Хей, видях кода ти, трябва ти малко практика,

Забравихте да затворите tagh. второ винаги използвайте идентификатори вместо имена. Трето, формулярът няма достъп до ‹p› tagh. четвърто, не можете да получите достъп до елементи, различни от формуляра, като използвате префикси на формуляр. 5-то или можете да създадете ‹p› tagh динамично или да го поставите на страница без показване. Проверете моя код. Това също можете да направите, за да го генерирате динамично.

var newP = document.createElement("p"); var txt = 'lkjsdf'; var newT = document.createTextNode(txt); newP.appendChild(newT);

<html>
<head></head>
<script type="text/javascript">
function testfunc(arg) {
    if(arg.value == "other") {
        document.thing.removeChild(document.thing.selection);
        document.getElementById('testText').style.display='inline';
    }
    else {
        alert("stuff");
    }
}
</script>
<body>
<form name="thing">
<select name="selection" onchange="testfunc(document.thing.selection.options[document.thing.selection.selectedIndex])">
<option>yes</option>
<option>no</option>
<option>other</option>
</select>
<p id="testText" style="display:none">lkjsdf</p>
</form>
</body>
</html>
person Waqar Alamgir    schedule 18.04.2011