2016-07-24 14 views
0

Я выбрал вариант:JavaScript скопировать значение OPTGROUP на другой вход

<form> 
<select name="sel" id="sel" onchange="run()"> 
<option selected disabled>Wybierz...</option> 
    <optgroup id="user" value="user" label="user"> 
    <option value="1">michal</option> 
    <option value="2">mateusz</option> 
    </optgroup> 
    <optgroup id="warehouse" value="warehouse" label="warehouse"> 
    <option value="1">kosz</option> 
    <option value="2">zaginione</option> 
    </optgroup> 
</select> 
</form> 


<input type="text" name="copy" id="copy"></input> 

И сценарий, чтобы добавить текст во входном тексте:

function run() { 
    if(document.getElementById("user").label == 'user'){ 

     document.getElementById("copy").value = "user"; 

    } else if (document.getElementById("warehouse").label == 'warehouse') { 

     document.getElementById("copy").value = "warehouse"; 

    } 
} 

Когда пользователь выбрал вариант с первой optgroup («пользователь») затем в текстовом скрипте ввода добавьте имя «пользователь». Когда пользователь выбирает записи со второго optgroup, тогда сценарий меняет текст во входном тексте на «склад». Но в моем скрипте ничего не добавляется к входному тексту. demo

+0

у вас есть использовать вариант OnLoad для Js .https:. //jsfiddle.net/7yv12vm0/2/ но ваше сравнение некорректно 'document.getElementById ("пользователь") label' всегда пользователь –

+0

Вы хотите значение ввода должно быть ** 'michal' ** или **' mateusz' ** или просто сказать ** 'user' **? Эта часть неясна. –

ответ

1

Demo

в jsfiddle вы поставили функции внутри функции OnLoad поэтому она undifined к внешнему scope.outherwise вы получите user для обеих групп document.getElementById("user").label == 'user' всегда true.so он не собирается еще блок . вы должны получить значение метки выбранной группы и сравнить ее.

var lable=event.target.options[event.target.selectedIndex].parentNode.label // get lable value of clicked group 
if(lable == 'user'){ 

    document.getElementById("copy").value = "user"; 

} else if (lable == 'warehouse') { 

    document.getElementById("copy").value = "warehouse"; 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^