2010-12-01 4 views
3

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

Я видел это на нескольких сайтах. просто интересно, где и как это было реализовано.

ответ

8

Я сделал вам пример, это то, что вы хотели? http://www.jsfiddle.net/T7gE7/

var temp = ''; 
function disableTxt() { 
    var field = document.getElementById("other"); 
    if(field.value != '') { 
     temp = field.value; 
    } 
    field.style.display = "none"; 
    field.value = ''; 
} 
function enableTxt() { 
    document.getElementById("other").style.display = "inline"; 
    document.getElementById("other").value = temp; 
} 
+0

спасибо. Я получаю его сейчас: D – 2010-12-01 11:19:43

+0

Я поиграл с ним еще немного, я думаю, что это не так. http://www.jsfiddle.net/T7gE7/4/ – Dai 2010-12-01 11:23:26

0

создать три переключателя и поле ввода, а затем установить поле ввода для отключения. Прикрепите событие javascript к третьему переключателю, который вызывает функцию javascript. Эта функция затем включит поле ввода, позволяющее пользователю ввести свой собственный вариант. Вы также должны добавить события javascript к двум другим переключателям, чтобы отключить поле ввода, если они были повторно выбраны.

3

хммм @Dai был быстрее меня: P ... но в любом случае, это не навязчивый способ сделать то же самое с помощью Mootools (если вы не хотите, чтобы смешать JS и HTML код)

http://jsfiddle.net/raKbZ/1/

$('radio4').addEvent('change',function(E){ 
    if(E.target.checked){ 
     enableInput(); 
    } 
}); 

$$('.normal').each(function(radio){ 
    radio.addEvent('change',function(E){ 
     if(E.target.checked){ 
      disableInput(); 
     } 
    }); 
}); 


function enableInput(){ 
    $('other').set('disabled',''); 
    $('other').setStyle('background-color','#fff'); 
} 

function disableInput(){ 
    $('other').set('disabled','disabled'); 
    $('other').setStyle('background-color','#d4d4d4'); 
} 
Смежные вопросы