jQuery:点击复选框后,将显示下面的输入框

时间:2011-09-21 15:18:20

标签: jquery

我不是很擅长jQuery,所以我有一个问题;有一种快速的编码方式,所以当你点击一个复选框(同样为1)时,下面会出现一个文本框。

我目前正在学习jQuery,所以这将是一个很好的例子。

提前致谢!

4 个答案:

答案 0 :(得分:1)

$("#yourCheckboxId").change(function(){
     if ($("#yourCheckboxId").is(":checked")){
         $("#yourTextBoxId").show();
     }
});

如果您想要在关闭复选框时隐藏文本框:

$("#yourCheckboxId").change(function(){
     if ($("#yourCheckboxId").is(":checked")){
         $("#yourTextBoxId").show();
     }
     else{
         $("#yourTextBoxId").hide();
     }
});

这假设您的ur html中有一个文本框,该文本框具有唯一的ID,并且最初也是隐藏的(“display:none”),并且您有一个最初可见的唯一ID的复选框

答案 1 :(得分:0)

$('input:checkbox').change(function () {
    if ( $(this).is(':checked') && !$(this).next().is('textarea') ) {
        $(this).after( $('<textarea>') );
        // OR $('<textarea>').insertAfter(this);
    }
});
evan版本显示预先存在的版本,我创建它,你可以将它们结合起来;)

答案 2 :(得分:0)

如果您希望完全动态地执行此操作,则需要使用2种方法。

  1. .after docs
  2. .remove docs
  3. 您可以确定是否已选中该复选框,如果是,则在其后添加文本框,或者是否取消选中该文本框并且文本框已存在,如果已删除,则将其删除。这归结为代码:

    $('input[type=checkbox]').click(function(){
        if($(this).is(':checked')){
              var tb = $('<input type=text />');   
              $(this).after(tb)  ;
        }
        else if($(this).siblings('input[type=text]').length>0){
            $(this).siblings('input[type=text]').remove();
        }
    })
    

    实例:http://jsfiddle.net/KQ56P/

答案 3 :(得分:0)

另一种方式(http://jsfiddle.net/3r6nb/):

//html
<div>
     <input id="check" type="checkbox"/>
     <input id="text" type="text" class="hidden"/>
</div>

//css
.hidden
{
/*hides any element given this class, you may also want to set 
  display:none; as hidden elements still take up space*/
    visibility:hidden;
}
.visible
{
    visibility:visible;/*set display:inherit; if using display:none; above*/
}

//javascript
$("#check").change(function() {
    //toggleClass() removes the class from the element if it 
    //exists or adds it if it doesn't
    $("#text").toggleClass('hidden');
    $("#text").toggleClass('visible');
});