选中单选按钮时不显示文本框

时间:2012-11-26 10:34:11

标签: javascript jquery jquery-plugins

尝试选择任何单选按钮,使其显示为文本框,但实际上它不起作用:(。所以这里是jsp页面中的html。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
input[type=text]{
  display : none
}
</style>
<script type="text/javascript" language="text/html" src="../jscript/jquery-1.7.2.js"></script>
<script type="text/javascript" language="javascript" src="../jscript/jquery-1.4.2.min.js"></script>
<script type="text/javascript"> // I 'm using your 1st jquery whose usage is void of css
$('input[type=radio]').change(function() {
    $('input[type=text]').css('display','none');
     $(this).closest('tr').find('input[type=text]').css('display','block');
});
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test </title>
</head>
<body>
<form action="">
<div align="left" style="color:#2D7EE7">
<table>
<tr>
<td>
<input type="radio" name="radio" value="college"></td> 
<td>College  </td>
<td><input type="text" name="clg"></td></tr>
<tr>
<td><input type="radio" name="radio" value="school"></td>
<td> School </td>
<td><input type="text" name="schl"></td>
</tr>
</table>
</div>
</form>
</body>
</html>

这是jquery的代码片段:

<script type="text/javascript">
$('input[type=radio]').change(function() {
       $('input[type=text]').hide();
       $(this).parent().next().show();
    });
</script>

和css:

<style type="text/css">
input[type=text]{
  display : none
}
</style>

但是这仍然不起作用:( :(所以我猜错了。请随意发表评论。

2 个答案:

答案 0 :(得分:3)

将一点改为:

            $('input[type=radio]').change(function() {
                $('input[type=text]').hide();
                 $(this).closest('tr').find('input[type=text]').show();
            });

OR

        $(document).ready(function(){
            $('input[type=radio]').change(function() {
                $('input[type=text]').css('display','none');
                $(this).closest('tr').find('input[type=text]').css('display','block');
            });
        });

答案 1 :(得分:0)

首先尝试在页面中只包含一个JQuery脚本(删除jquery-1.4.2.min.js)

$(':radio')相当于$('[type=radio]')

$(document).ready(function(){
    $(':radio').change(function() {
        // Hide all input:text in the table     
        $('input:text', $(this).closest("table")).hide(); 
        $(this).parent().nextAll().find('input:text').show();
    });
});