【问题标题】:How to get checkbox value checked and show to input element using Javascript or Jquery?如何使用 Javascript 或 Jquery 检查复选框值并显示到输入元素?
【发布时间】:2019-07-12 06:08:00
【问题描述】:

但该值仅在我单击复选框时显示并且它不显示预先选择的值,即使我不单击复选框,我也希望它显示选定的结果,请更正此代码帮助我或给我一些示例代码,我可以添加,谢谢!

<script type="text/javascript">
    function thayTheLoai() {
        var huunhan_theloai = [];
        $.each($("input[type='checkbox']:checked"), function() {
            huunhan_theloai.push($(this).val());
        });
        document.getElementById("input").value = huunhan_theloai.join(", ");
    }
</script>
<label for="default" onclick="thayTheLoai();" class="btn btn-default">
    <input type="checkbox" value="1" id="theloai1" class="badgebox" name="theloai[]" ></input>
</label>
<input id="input" type="text"></input>

<script>
    $('#theloai1').prop('checked', true);
</script>

这是演示:https://anifast.com/includes/test.php,我希望不需要单击复选框并仍然显示检查结果

【问题讨论】:

  • 为什么不将checked="checked" 添加到&lt;input&gt; 元素中?
  • 我想创建表单编辑(更新)值选择到 MYSQL,我使用 mysqli_fetch_assoc 显示输入标签,因为使用 html 数据不会完全
  • 我在您附加的代码中没有看到任何涉及 MySQL 的内容。
  • 请向我们展示您的尝试,也许我们可以帮助您。
  • 如果你能帮我编辑这个 HTML 代码,我会把它添加到我的代码中,请帮我用 javascript 在后面添加“checked”,因为如果我使用 prop ('checked') 那么功能 huunhan_theloai 不起作用,我不知道该怎么做。我的代码包含 PHP,所以会很混乱,所以请帮助我处理 HTML

标签: javascript jquery html checkbox


【解决方案1】:

使用此代码,不要忘记使用 jquery 库。

$(document).ready(function(){
    $('#theloai1').prop('checked', true);
    var huunhan_theloai = [];
    $.each($("input[type='checkbox']:checked"), function() {
        huunhan_theloai.push($(this).val());
    });
    document.getElementById("input").value = huunhan_theloai.join(", ");
})


function thayTheLoai() {
    if ($('input[name="theloai[]"]:checked').length > 0) {
        $("#input").val(1);
    }else{
        $("#input").val(0);
    }
}

【讨论】:

  • 如果有,比如说 3 个输入元素,每个元素都有不同的值怎么办?您的 thayTheLoai() 会将每个选中字段的值更新为 1 和 0。这无论如何都不好:)
  • 这是演示链接,此代码需要编辑:anifast.com/includes/test.php,请帮我编辑代码
  • 你可以让它动态化。检查我的新答案。这可能会有所帮助。 :)
【解决方案2】:

你有两种方法:

  1. 您从 PHP 和 MySQL 更新输入字段以在所选输入字段上添加 checked="checked" 并在加载时运行函数:

JS

function thayTheLoai() {
    var huunhan_theloai = [];
    $.each($("input[type='checkbox']:checked"), function() {
        huunhan_theloai.push($(this).val());
    });
    $('#input').val( huunhan_theloai.join(", ") );
}

$(document).ready(function(){
    thayTheLoai();
});

HTML

<label for="theloai1" onclick="thayTheLoai();" class="btn btn-default">
    <input type="checkbox" value="1" id="theloai1" class="badgebox" name="theloai[]" />
</label>
<label for="theloai2" onclick="thayTheLoai();" class="btn btn-default">
    <input type="checkbox" value="2" id="theloai2" class="badgebox" name="theloai[]" checked="checked" />
</label>
<input id="input" type="text"/>
  1. 如果您想使用$('#theloai1').prop('checked', true); 更新输入字段,您应该更改它,以便它也触发输入字段上的onchanged 事件,如下所示:

$('#theloai1').prop('checked', true).trigger('change');

注意事项

  1. 此代码未经测试,但应该可以工作

  2. 确保您编写了有效的 HTML,否则您可能会得到意想不到的结果(我也修复了您的 HTML)

【讨论】:

    【解决方案3】:
    <label for="default" class="btn btn-default">
    <input type="checkbox" value="1" id="theloai1" class="badgebox" name="theloai[]" ></input>
    <input type="checkbox" value="2" id="theloai2" class="badgebox" name="theloai[]" ></input>
    <input type="checkbox" value="3" id="theloai3" class="badgebox" name="theloai[]" ></input>
    <input type="checkbox" value="4" id="theloai4" class="badgebox" name="theloai[]" ></input>
    
    </label>
    <input id="input" type="text"></input>
    
    
    
    $(document).ready(function(){
        $('#theloai1').prop('checked', true);
        var huunhan_theloai = [];
        $.each($("input[type='checkbox']:checked"), function() {
            huunhan_theloai.push($(this).val());
        });
        document.getElementById("input").value = huunhan_theloai.join(", ");
    })
    
    $("input[type='checkbox']").on("change", function(){
        checked_id = $(this).attr("id");
        if ($(this).prop("checked") == true) {
            $("input[type='checkbox']").each(function(){
                if ($(this).attr("id") != checked_id) {
                    $(this).prop("checked", false);
                }
            })
            $("#input").val($(this).val());
        }else{
            $("#input").val('some default value');
        }
    })
    

    【讨论】:

    • 还有,为什么要将标准值设置为0?如果这是一个选项值并且它给出了意想不到的结果怎么办?
    • 如果这是一个选项值并且它给出了意想不到的结果怎么办?我没有得到这个,哪个选项值,你能解释或显示。或者,如果您有一些默认值,我们可以使用任何东西而不是 0
    • 默认值为空字符串 :) 也许这是 OP 案例之一:&lt;input type="checkbox" value="0" id="theloai4" class="badgebox" name="theloai[]" /&gt;
    • 此外,即使您只回答 JS 问题,您也应该让 OP 知道代码中存在 HTML 语法问题以及如何解决这些问题。这肯定会有所帮助:)
    • 如果我们有空字符串作为默认值,我们可以在 else 部分这样做: $("#input").val();这会将值设置为空白。为此:此外,即使您只回答 JS 问题,您也应该让 OP 知道代码中存在 HTML 语法问题以及如何解决这些问题。这肯定会有所帮助:) 下次我会记住的。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2016-04-05
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多