【问题标题】:Javascript function to check a box based on value of select optionJavascript函数根据选择选项的值检查一个框
【发布时间】:2023-03-13 17:00:01
【问题描述】:

我目前有一个 javascript 函数,如果选中一个复选框,它会将选择选项更改为 1。我似乎无法弄清楚,如果用户未能勾选复选框并且只是从选择下拉列表中选择一个值(0以外),如何自动选中该框。该脚本具有使用 php 数组值生成的 ID 和名称。

感谢您抽出宝贵时间查看此内容。

function quantityChangeHandler(source) {
    var qtyElem = document.getElementById(source.getAttribute('rel'));
    if (source.checked) {
        if (qtyElem.value == 0)
            qtyElem.value = 1;
        }
    else 
            qtyElem.value = 0;
}

<input type="checkbox" onclick="quantityChangeHandler(this)" 
name="prodid[<?php echo $prodid;?>][]" rel="prodqty_<?php echo $prodid . '_' . $contactid; ?>" 
value="<?php echo $contactid; ?>" /><br />

Qty
<select id="prodqty_<?php echo $prodid . '_' . $contactid; ?>"
name="prodqty[<?php echo $prodid; ?>][<?php echo $contactid; ?>]">
    <option value="0">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>

【问题讨论】:

    标签: javascript php


    【解决方案1】:

    您应该将类​​似的处理程序和rel 属性添加到select 标记,并根据select 元素的值设置 source.checked

    将此添加到您的 Javascript:

    function selectChangeHandler(source) {
        var checkboxElem = document.getElementById(source.getAttribute('rel'));
        checkboxElem.checked = source.value != 0;
    }
    

    HTML 更改示例:

    <input id="checkbox_0" ... />
    ...
    <select ... rel="checkbox_0" onchange="selectChangeHandler(this)">
    ...
    

    Working JSFiddle

    【讨论】:

    • 哇——反应真快!太感谢了。出于某种原因,我只是看不到它,而你挽救了我的理智。再次感谢您。
    • 这个答案(感谢您提供 JSFiddle 示例)效果很好。
    【解决方案2】:

    据我了解,手动触发复选框选择是通过触发点击事件。

    说你复选框 id = "mychkbox"

    然后使用 jquery 你可以通过 $('#mychkbox').trigger('click');

    这使得选中的复选框被选中。

    以及是否选中复选框的检查条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多