основные события JavaScript - PullRequest
0 голосов
/ 29 декабря 2011

Я новичок в JavaScript.Вот мой код

<script>
function text_input_type(type)
{
if(type=='list'){
document.getElementById("note_input").innerHTML="<input type=\"text\" name=\"body\">";
}
else{
document.getElementById("note_input").innerHTML="<textarea id=\"note_input\" name=\"body\" cols=\"27\" rows=\"5\"></textarea>";
}
}

</script>

 <textarea id="note_input" name="body" cols="27" rows="5"></textarea>
 <input type="radio" name="type" value="text" onclick=text_input_type('list') />
 <input type="radio" name="type" value="list" onclick=text_input_type('text') />

Я хочу, чтобы в зависимости от переключателя, который вы нажимаете, он менялся с текстовой области на тип ввода текста.Проблема заключается в том, что вместо того, чтобы изменять ввод с текстового поля на текстовый ввод меньшего размера, он просто печатает код внутри поля.

Ответы [ 3 ]

1 голос
/ 29 декабря 2011

Надеюсь, это поможет вам в решении вашей проблемы.

 <script>
    function text_input_type(type)
    {
    if(type=='list'){
    document.getElementById("note_input").innerHTML="<input type=\"text\" id=\"note_input1\" name=\"body\">";
    }
    else{
    document.getElementById("note_input").innerHTML="<textarea id=\"note_input1\" name=\"body\" cols=\"27\" rows=\"5\"></textarea>";
    }
    }

    </script>

     <div id="note_input"><textarea id="note_input1" name="body" cols="27" rows="5"></textarea></div>
     <input type="radio" name="type" value="text" onclick=text_input_type('list') />
     <input type="radio" name="type" value="list" onclick=text_input_type('text') />

Попробуйте этот код, вы получите то, что хотите.

0 голосов
/ 29 декабря 2011

Свяжите обработчики кликов и с Javascript - встроенный Javascript на самом деле не нужен:

var elems = [].slice.call( document.getElementsByTagName("input") );
elems.forEach( function( elem ){
    elem.onclick = function(){
        var type = this.value;
        if( type === 'list' ){
            alert("type is list");
        } else {
            alert("type is not list");
        }
    };
});

Пример .

Я знаю, что это может бытьнемного сложнееМы просто прикрепляем функцию щелчка к каждому из тегов ввода на странице.Мы устанавливаем value нажатой входной переменной для type и проверяем, равна ли эта переменная строке list.Если это так, то мы запускаем код в if.Если нет, мы запускаем код в else.

По сути, это облегчает вам задачу.Вы просто помещаете этот код в свой файл JS, и вам не нужно беспокоиться о назначении onclick для самих элементов (и похоже, что вы делали это для двух из них).

Однако вашкод будет работать, если вы окружите onclick кавычками, например:

onclick="text_input_type('list');"
0 голосов
/ 29 декабря 2011

Ваш код правильный, за исключением небольшого изменения.

<html>
<body>
<input type="radio" name="type" value="text" onclick="text_input_type('list');" />
<input type="radio" name="type" value="list" onclick="text_input_type('text');" />
<div id="note_input">
</body>
</html>

Должно работать нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...