Php 我想在单击复选框时禁用文本框。复选框是动态的 $(函数(){ $(“输入:复选框”)。单击(函数(){ 如果($(this).is(“:checked”)){ var id=$(this.attr('id'); 如果(id){ $(“#txtPassportNumber”).removeAttr(“禁用”); $(“#txtPassportNumber”).focus(); } }否则{ $(“#txtPassportNumber”).attr(“禁用”、“禁用”); } }); });

Php 我想在单击复选框时禁用文本框。复选框是动态的 $(函数(){ $(“输入:复选框”)。单击(函数(){ 如果($(this).is(“:checked”)){ var id=$(this.attr('id'); 如果(id){ $(“#txtPassportNumber”).removeAttr(“禁用”); $(“#txtPassportNumber”).focus(); } }否则{ $(“#txtPassportNumber”).attr(“禁用”、“禁用”); } }); });,php,jquery,Php,Jquery,这是我的jquery代码,我得到了一个文本框 <script> $(function () { $("input:checkbox").click(function () { if ($(this).is(":checked")) { var id = $(this).attr('id'); if (id) { $("#txtPass

这是我的jquery代码,我得到了一个文本框

<script>
    $(function () {
        $("input:checkbox").click(function () {
            if ($(this).is(":checked")) {
                var id = $(this).attr('id');
                if (id) {
                    $("#txtPassportNumber").removeAttr("disabled");
                    $("#txtPassportNumber").focus();
                }
            } else {
                $("#txtPassportNumber").attr("disabled", "disabled");
            }
        });
    });
</script>

数量:

您要求解决选择问题,因此这里有一个小的“JQuery”代码

我习惯于解释我用下面的代码做了什么。在代码中,您试图使用要更改的元素的ID。问题是每个元素的ID必须是唯一的,如果所有元素的ID都相同,那么所有这些元素都将被视为一个元素

此外,您还试图为ID分配一个编号(
ID=“txtPassportNumber”
),这使得识别更加困难

因此,我在代码中所做的是将侦听器从一个ID移动到另一个类,这使它变得更容易,并释放ID,让您可以使用它做任何您想做的事情。在脚本中,
JQuery
侦听.sizeChk类上是否有click事件如果为true,则检查click事件是否选中复选框。然后,如果选中该复选框,它将查找选中复选框的输入
。next()

我使用了
.next()
,因为
输入位于右侧,如果
输入位于左侧,则可以使用
.prev()
。在找到复选框旁边的输入后,它将应用
.prop()
。我没有使用
.attr()
,因为它很旧,而且不受
JQuery
本身的鼓励

您只需保持类的灵活性,就可以将同一类用于任何其他复选框,从而在这些元素上获得相同的函数

旁注:你最好多读一点
JQuery

与描述相符的旧答案。
$(文档).ready(函数(){
$('.sizeChk')。单击(函数(){
如果($(this).is(':checked')){
$(this).next(“input”).prop('disabled',false).focus();
}否则{
$(this).next(“input”).prop(“disabled”,true);
}
});
})

小型:


中等:

大:

xLarg:

第三十一条:
在php中的
echo$i
之后重试
id=“txtPassportNumber”
请尝试以下操作,
id=“txtPassportNumber”
它正在使用
获取try的id('click'
@shikha很高兴在这里它对你有用我刚刚更新了我的答案,并对
JQuery
的功能进行了描述。很好的解释,但如果我在输入后应用
的话,那么next将不起作用。它的解决方案是什么。嗯
.next()
只是在我的代码片段和小提琴中查找
输入
而不是

,我使用的

没有任何问题。是的,答案更准确谢谢@Sand:)
<label for="chkPassport">
    <?php
    $select_size = $common->select('size_m', '');
    $i = 0;
    foreach ($select_size as $sizes) {
        $s = $sizes['sizename'];
        ?>
        <input type="checkbox" id="chkPassport<?php echo $s; ?>" class="current"/>
        <?php echo $sizes['sizename']; ?>
    </label>
    qty:
    <input type="text" id="txtPassportNumber<?php echo $i;?>"  disabled="disabled" class="current<?php echo $s; ?>"/>
    <br/>
    <?php
    $i++;
}
?>