Когда пользователь ТОЛЬКО выбирает 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> </td>
</tr>
попробуй это
<!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>
С уважением
Вместо этого используйте 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';
}
}
}
Я предлагаю вам использовать jQuery.
Вы можете сделать следующее:
$('#gender').on('change', function(){
var g = $(this).val();
if(g == 'male') {
$('#gender_id').show();
}
else
{
$('#gender_id').hide();
}
});
getElementByName()
. ЭтоgetElementsByName()
(обратите внимание на «s»).