Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复选框隐藏Div未选中_Javascript_Jquery_Html_Checkbox_Yii - Fatal编程技术网

Javascript 复选框隐藏Div未选中

Javascript 复选框隐藏Div未选中,javascript,jquery,html,checkbox,yii,Javascript,Jquery,Html,Checkbox,Yii,我有一个带有文本字段的复选框隐藏div。如果选中复选框,将显示此文本字段,但如果未选中复选框,则不显示文本字段。此代码: <script type="text/javascript"> $(function () { $("input[name='checkbox1']").click(function () { if ($("#checkyes1").is(":checked")) { $("#dv

我有一个带有文本字段的复选框隐藏div。如果选中复选框,将显示此文本字段,但如果未选中复选框,则不显示文本字段。此代码:

<script type="text/javascript">
    $(function () {

        $("input[name='checkbox1']").click(function () {

            if ($("#checkyes1").is(":checked")) {
                $("#dvcheckbox1").show('lainnya');

            } else {

                $("#dvcheckbox1").hide('lainnya');
            }



        });
    });
</script>

<div style="margin-left: 29%; margin-top: -2%;">
<label for="checkyes1">

<input type="checkbox" id="checkyes1" name="checkbox1" value="lainnya" />
Lainnya
</label>

<div id="dvcheckbox1" style="display: none;">
    <?php echo $form->textField($model,'lainnya'); ?>
</div>
</div>

$(函数(){
$(“输入[name='checkbox1']”)。单击(函数(){
如果($(“#checkyes1”)。是(“:checked”)){
$(“#dvcheckbox1”).show('lainnya');
}否则{
$(“#dvcheckbox1”).hide('lainnya');
}
});
});
莱尼亚
但是,如果textfield上有值,如何选中此复选框?和显示的文本字段。因为在表单更新中,显示了值,但选中了复选框。“我想要”复选框已选中

例如:

改为使用带有
更改的
事件。切换(布尔值)
方法:

// on page load check of the div contains any text
$("#dvcheckbox1").toggle(function(){
   var $v = $(this).find('input').val();
   $("input[name='checkbox1']").prop('checked', $v.trim().length !== 0)
   return $v.trim().length !== 0;
});    

$("input[name='checkbox1']").change(function () {
     $("#dvcheckbox1").toggle(this.checked);
});

这里有几件事:

1-如果使用document ready更好,因为它会等待所有元素加载

2-加载页面时,应隐藏元素$(“#dvcheckbox1”).hide('lainnya')

3-在输入中加入侦听器:文本是个好主意。如果文本框为空,则启用该复选框

请看下一段代码:

<div>
    <label for="checkyes1">
    <input type="checkbox" id="checkyes1" name="checkbox1" value="lainnya" />
        Lainnya
    </label>

    <div id="dvcheckbox1">
        <label for="myValuye"/>
        <input type="text" id="myValue" name="myValue" value=""/>
    </div>
</div>

<script>
    $(document).ready(function() {
    $("input[name='checkbox1']").click(function () {
        // Always use some logs to check what line are you reaching.
        console.log("Clicked checkbox!!!");

        if ($("#checkyes1").is(":checked")) {
            $("#dvcheckbox1").show('lainnya');
        } else {
            console.log("Value: " + $("#myValue").val());
            $("#dvcheckbox1").hide("lainnya");
        }
    });

    $("#myValue").bind("change paste keyup", function() {
        if ($(this).val() == "") {
            $("#checkyes1").removeAttr("disabled");
        } else {
            $("#checkyes1").attr("disabled", true);
        }
    });

    // First of all we hide the #dvcheckbox1
    $("#dvcheckbox1").hide('lainnya');
})

莱尼亚
$(文档).ready(函数(){
$(“输入[name='checkbox1']”)。单击(函数(){
//总是用一些日志来检查你到达的路线。
log(“单击复选框!!!”;
如果($(“#checkyes1”)。是(“:checked”)){
$(“#dvcheckbox1”).show('lainnya');
}否则{
log(“Value:+$(“#myValue”).val());
$(“#dvcheckbox1”).hide(“lainnya”);
}
});
$(“#myValue”).bind(“更改粘贴键控”,函数(){
if($(this).val()==“”){
$(“#checkyes1”).removeAttr(“禁用”);
}否则{
$(“checkyes1”).attr(“disabled”,true);
}
});
//首先,我们隐藏了#dvcheckbox1
$(“#dvcheckbox1”).hide('lainnya');
})

您的问题不清楚您的代码似乎工作正常。到底是什么问题?在表单更新中,文本字段中的值已显示,但复选框未选中。我想检查一下复选框,谢谢。但我对我的语言感到抱歉。还在学习@Jai