例如,我有一个代码:
<form name="myform">
<table>
<td>
<select name="one" onchange="if (this.selectedIndex=='other'){this.myform['other'].style.visibility='visible'}else {this.myform['other'].style.visibility='hidden'};">
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">3</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="other">Other</option>
</select>
<input type="textbox" name="other" style="visibility:hidden;"/>
</td>
</table>
</form>
我需要在选择“其他”选项时显示文本框。上面的代码不起作用:(
答案 0 :(得分:13)
selectedIndex
给出索引即数字,因此“other”的索引为8,您可以从select元素的value属性中获取所选选项的值。要访问表单,控件正在使用元素表单属性this.form
,您的表格单元格也应该在一行中。
<form name="myform">
<table>
<tr>
<td>
<select name="one" onchange="if (this.value=='other'){this.form['other'].style.visibility='visible'}else {this.form['other'].style.visibility='hidden'};">
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">3</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="other">Other</option>
</select>
<input type="textbox" name="other" style="visibility:hidden;"/>
</td>
</tr>
</table>
</form>
答案 1 :(得分:4)
<form name="myform">
<table>
<td>
<select name="one" onchange="if (this.options[this.selectedIndex].value =='other'){document.myform['other'].style.visibility='visible'}else {document.myform['other'].style.visibility='hidden'};">
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">3</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="other">Other</option>
</select>
<input type="textbox" name="other" style="visibility:hidden;"/>
</td>
</table>
</form>
答案 2 :(得分:4)
<form name="myform">
<table>
<td>
<select name="one" id="mySelect">
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">3</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="other">Other</option>
</select>
<input type="textbox" name="other" style="visibility:hidden;"/>
</td>
</table>
</form>
<script type="text/javascript">
$('#mySelect').bind('onchange',function(){
if (this.value==='other')
{
this.myform['other'].style.visibility='visible'
}
else {
this.myform['other'].style.visibility='hidden'};
}
</script>
答案 3 :(得分:0)
this.selectedIndex
返回一个不是字符串的整数。像0,1,2这样的东西,对于'其他'可能是8。 8 == 'other'
永远不可能是真的
试试这个
onchange="if (this.options[this.selectedIndex].value =='other')"
答案 4 :(得分:0)
首先将 td
括在 tr
中,然后在下面是DEMO
答案 5 :(得分:0)
<form name="form" action="" method="post">
<table>
<tr>
<td>
<select name="one" onchange="if (this.value=='yes'){this.form['yes'].style.visibility='visible'}else {this.form['yes'].style.visibility='hidden'};">
<option value="" selected="selected">Select...</option>
<option value="yes">yes</option>
<option value="no">no</option>
</select>
<input type="text" name="yes" style="visibility:hidden;"/>
</td>
</tr>
</table>
</form>
答案 6 :(得分:0)
$(document).ready(function () {
$('#types').change(function () {
if ($('#types').val() == 'Other') {
$('#other').show();
}
else {
$('#other').hide();
}
});
});
<body>
<form id="form1" runat="server">
<div>
<select id="types" name="types">
<option value="Type 1">Type 1</option>
<option value="Type 2">Type 2</option>
<option value="Type 3">Type 3</option>
<option value="Other">Other</option>
</select>
<input type="text" id="other" name="other" style="display: none;" />
</div>
</form>
答案 7 :(得分:0)
<强> JQuery的强>
$(document).ready(function() {
$("select").change(function() {
$(this).find("option:selected").each(function() {
if ($(this).attr("value") == "class") {
$(".box").not(".class_name").hide();
$(".class_name").show();
$(".box").not(".class_name").val("");
}
else if ($(this).attr("value") == "ref") {
$(".box").not(".ref_id").hide();
$(".ref_id").show();
$(".box").not(".ref_id").val("");
}
else {
$(".box").hide();
}
});
}).change();
});
<强> HTML 强>
<div>
<select>
<option>Choose</option>
<option value="class">Class</option>
<option value="ref">Particular</option>
</select>
</div>
<div class="class_name box">
Class Name: <input type="text" name="c">
</div>
<div class="ref_id box">
Reference_id : <input type="text" name="r">
</div>