选择选项时显示文本框

时间:2012-07-07 22:31:52

标签: javascript-events

我使用单选按钮显示下拉列表,其中包含三个选项。当用户选择空白选项时,我需要显示一个文本框。如果有人有建议让我朝着正确的方向前进,我将不胜感激。

 <!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=iso-8859-1" />
<title>test</title>
<style type="text/css" media="screen">
.hide{
display:none;
}
</style>
</head>
<body>
<form name="frm1" method="POST" action="">
<p>Select type of exception:<br />
<div id="tabs">
<div id="nav">
Waiver:<input type="radio" name="tab" value="pickfrom" class="div5" />

</div>

<div id="div5" class="tab"><br />
<label>Reason for Waiver</label>
<select name="selWaiver" id="waivers" onchange="if(this.selected index==blank){this.form['box'].style.visibility='visible'}else{this.form['box'].style.visibility='hidden'};">

<option value="reason">Reason</option>
<option value="newReason">New Reason</option>
<option value="blank">Blank</option>
</select>



</div>

</div>
<script type="text/javascript" charset="utf-8">
(function(){
var tabs =document.getElementById('tabs');
var nav = tabs.getElementsByTagName('input');
/*
* Hide all tabs
*/
function hideTabs(){
var tab = tabs.getElementsByTagName('div');
for(var i=0;i<=nav.length;i++){
if(tab[i].className == 'tab'){
tab[i].className = tab[i].className + ' hide';
} }
}
/*
* Show the clicked tab
*/
function showTab(tab){
document.getElementById(tab).className = 'tab'
}
hideTabs(); /* hide tabs on load */
/*
* Add click events
*/
for(var i=0;i<nav.length;i++){
nav[i].onclick = function(){
hideTabs();
showTab(this.className);
}
}
})();
</script>
</form>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

    <select name="selWaiver" id="waivers" onchange='if ($(this).val()=="") {
$("#box").show(); }else{
$("#box").hide();}'>

我推荐JQuery,因为它可以为您节省大量的跨浏览器兼容性问题!

答案 1 :(得分:0)

你在这个项目中使用jQuery吗?使用jQuery库执行DOM操作要容易得多。我会为此使用jQuery toggle()方法(http://api.jquery.com/css处的更多信息)。您可以在空白选项的click事件上执行类似的操作:

$('.hide').toggle();

答案 2 :(得分:0)

Javascript版本(未经测试):

 <select name="selWaiver" id="waivers" onchange='check(this);'>   
    <script>
    function check(sel)
    {
    var value=frm1.selWaiver.options[frm1.selWaiver.options.selectedIndex].value;
    //alert(value) to see if it works
    var box=document.getElementById("box");
    if (value=="")
       box.style.display="block";
    else 
       box.style.display="none";
    }
    </script>