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=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>
4

3 回答 3

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

我推荐使用 JQuery,因为它会为你省去很多跨浏览器的兼容性问题!

于 2012-07-07T22:37:49.487 回答
0

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

$('.hide').toggle();
于 2012-07-07T22:38:15.277 回答
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>
于 2012-07-07T22:56:02.117 回答