Активировать текстовое поле, когда пользователь выбирает значение в выпадающем списке

0

Когда пользователь ТОЛЬКО выбирает Male из следующего combobox, я хочу отобразить текстовое поле ниже. Это должно произойти только тогда, когда пользователь выбирает значение Male.

function genderfind(val) {
    var element = document.getElementById('gender');
    if (val == 'male' ) {
        element.style.display = 'block';
    } else {
        element.style.display = 'none';
    }
}
<td align="left">
    <select id="gender" name="gender" onchange='genderfind(this.value);'>
        <option value="female">female</option>
        <option value="male">Male</option>
    </select>
</td>

Когда пользователь выбирает "male" из приведенной выше комбинации, должно отображаться следующее текстовое поле, которое находится внутри <tr>. В коде, который я попробовал, он не работает. Помогите

<tr>
    <td align="left" name="gender" id="gender" style='display:none;'>Text box</td>
    <td align="left" name="gender" id="gender" style='display:none;'>
        <input id="gender_id" type="text" name="gender" style='display:none;'>
    </td>
    <td align="left" id="gender" name="gender"><span id="validate"></span>&nbsp;</td>
</tr>
Теги:

3 ответа

0
Лучший ответ

попробуй это

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
body #container .item .bg_img{background:url('search-icon-2x.png') no-repeat; height:50px;}
</style>
<script>
function genderfind(val) {
            //var element = document.getElementById('gender').value;
            //alert(element);
            if (val == 'male' ) {
                document.getElementById('genderbox').style.display = 'block';
            } else {
                document.getElementById('genderbox').style.display = 'none';
            }

        }
</script>
</head>
<body>
<div id="container">
    <div class="item">
        <div class="bg_img"></div>
        <h1>morning</h1>
        <h2>today</h2>
        <p>lorem ipsum.</p>
    </div>
</div>
<table>
    <tr>
        <td align="left">
            <select id="gender" name="gender" onchange='genderfind(this.value);'>
            <option value="female">female</option>
            <option value="male">Male</option>
            </select>
        </td>
        <td id="genderbox" style="display:none;">
            <input type="text" name="name" />
        </td>
    </tr>
</table>
</body>
</html>

С уважением

0

Вместо этого используйте getElementsByName.

function genderfind(val) {
    var element = document.getElementsByName('gender');
    for(int i=0;i<element.lenght;i++)
    {          
        if (val == 'male' ) {
            element[i].style.display = 'block';
        } else {
                  element[i].style.display = 'none';
        }
     }
}
  • 0
    Нет метода getElementByName() . Это getElementsByName() (обратите внимание на «s»).
  • 0
    Это getElementsByName ..
Показать ещё 2 комментария
0

Я предлагаю вам использовать jQuery.

Вы можете сделать следующее:

$('#gender').on('change', function(){
   var g = $(this).val();
   if(g == 'male') {
     $('#gender_id').show();
   }
   else 
   {
     $('#gender_id').hide();
   }
});
  • 0
    Должен ли я внести изменения в мой HTML. или это тоже самое?
  • 0
    Просто сделайте идентификаторы уникальными для всей HTML-страницы. Например, удалить идентификатор = "пол" во всех TD.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню