取消选中复选框时不隐藏textarea

时间:2013-09-24 09:56:57

标签: javascript checkbox

我有以下代码: 当我点击被拒绝的复选框时它工作正常,它显示了textarea但是当我取消选中被拒绝的复选框时它没有隐藏它。

请帮忙......

<script type="text/javascript">
function checkValue() {
    var rejected=document.forms["frmcnt"]["ar"].checked

    if (rejected = 'Rejected') {
        document.getElementById('xtraInfo').style.display='';
    } else {
        document.getElementById('xtraInfo').style.display='none';
    }   
}   
</script>

Accepted: <input type='checkbox' name='ar' value='Accepted' />
Rejected: <input type='checkbox' name='ar' value='Rejected' onClick="return checkValue(this)" />

  <div id="xtraInfo" style="text-align:center; display:none; font-weight:bold;">
    <center>Rejection Detail:</center><br>
    <textarea width="900" style="width: 910px; resize:vertical;" name="rejectdt"><?php if( $_SERVER['REQUEST_METHOD'] === 'POST' ) { print_r($_POST['rejectdt']); } ?></textarea>
  </div>

5 个答案:

答案 0 :(得分:3)

HTML:

 Rejected: <input type='checkbox' name='reject' id='reject' value='Rejected' onClick="checkValue()" />

功能:

function checkValue() 
{

if(document.getElementById("reject").checked == true)
 {
   document.getElementById('xtraInfo').style.display='block';
 }
else
 {
   document.getElementById('xtraInfo').style.display='none';
 }
}

答案 1 :(得分:2)

document.forms["frmcnt"]["ar"].checked返回truefalse,更改为:

if (rejected) {
    document.getElementById('xtraInfo').style.display='block';
} else {
    document.getElementById('xtraInfo').style.display='none';
}   

更新::因为你正在做onClick="return checkValue(this)",所以

function checkValue(obj) {
    var rejected=obj.checked;

    if (rejected) {
       document.getElementById('xtraInfo').style.display='block';
    } else {
       document.getElementById('xtraInfo').style.display='none';
    }  
} 

演示:: jsFiddle

答案 2 :(得分:0)

等于条件语句需要有另一个等号。此外,您在定义被拒绝的变量

的行中关闭了分号
function checkValue() {
    var rejected = document.forms["frmcnt"]["ar"].checked;

    if(rejected == 'true') {
        document.getElementById('xtraInfo').style.display='';
    } else {
        document.getElementById('xtraInfo').style.display='none';
    }   
}   

答案 3 :(得分:0)

您的代码可能存在其他问题,但我确实注意到您正在执行

if (rejected = 'Rejected') {

而不是

if (rejected == 'Rejected') {

(需要两个等号来检查一个值)

答案 4 :(得分:0)

    <script type="text/javascript">
    function checkValue() {
        var rejected=document.forms["frmcnt"]["ar"].checked

        if (rejected = 'Rejected') {
            document.getElementById('xtraInfo').style.display='';
        } 
else if(rejected==false)
{
document.getElementById('TextContent').style.display='none';
}
else {
            document.getElementById('xtraInfo').style.display='none';
        }   
    }   
    </script>

    <textarea width="900" style="width: 910px; id="TextContent" resize:vertical;" name="rejectdt">