php - 如何使用外部元素更改 <select> 选定的选项

标签 php wordpress

我想更改 <select> 的选定选项使用 <select> 之外的元素进行下拉.我正在使用 Wordpress,选择功能在此功能下:http://codex.wordpress.org/Function_Reference/selected

我尝试了一个简单的 jQuery 函数:

    <select id="bto_item_options_<?php echo $group_id; ?>" name="bto_selection_<?php echo $group_id; ?>" class="selectDD">

    [Loop details]

    <option data-title="<?php echo get_the_title( $product_id ); ?>" value="<?php echo $product_id; ?>" <?php echo selected( $selected_value, $product_id, false ); ?> ><?php echo get_the_title( $product_id ); ?></option>

    [Loop end]

    </select>

    [Loop details]

    <div id="<?php echo $product_id; ?>" onclick="selectOptionDD(<?php echo $product_id; ?>)" ><?php echo get_the_title( $product_id ); ?></div>

    [Loop end]

    <script type="text/javascript">
    function selectOptionDD(title) {
        $(".selectDD").val(title);
    }
    </script>

此代码有效,但仅适用于 html 元素,不适用于 wordpress 功能,其他所有功能都在选定的 Wordpress 功能下。 有没有办法在 <select> 之外使用此功能?元素?

最佳答案

您可以使用原始 javascript 来更改选择元素选项,但您可能需要稍微更改您的实现。只需使用 id 属性访问 select 元素,然后确定您要选择的选项元素的索引。

function selectDD(option = 0) { //pass the options index you want into the function
    //Change "SelectBoxID" to match your id attribute
    var selectBox = document.getElementById("SelectBoxID"); 
    selectBox.options[option].selected = true; 
}

编辑

我想我误解了你的意思。如果我做对了,您需要做的就是单击 <div>。其中包含一些文本,然后将选择适当的 <option><select>与您的 <div> 中的文本相匹配的框.希望我明白这就是你想要做的。如果是这样,那么试试这个功能:

function selectDD(div, select) {
    var match = div.innerHTML;
    var found = false;
    var ndx = false;
    for(var i = 0. i < select.options.length; i++) {
        if(found) {
            break;
        }
        if(match.localeCompare(select.options[i].innerHTML) == 0) {
            ndx = i;
            found = true;
        }
    }
    if(found) {
        select.options[ndx].selected = true;
    }
}

接下来您需要将 <div> 传递给函数带有文本和 <select> 的元素要操作的元素。

<div id="<?php echo $product_id; ?>" onclick="selectDD(this, document.getElementById('bto_item_options_<?php echo $group_id; ?>')" ><?php echo get_the_title( $product_id ); ?></div>

应该给你你所需要的。希望这对您有所帮助,或者至少让您朝着正确的方向前进。

关于php - 如何使用外部元素更改 <select> 选定的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19124347/

相关文章:

来自行中具有多个值的表的 PHP SQL 查询 ID

javascript - Wp_admin ajax 请求返回响应 "0"

php - 用户帐户 'root' 的指定密码无效,或者无法连接到数据库服务器

html - 水平对齐 3 个嵌套的 div

php - Twilio 传真 - 如何在 PHP 中管理 Wordpress 中的状态响应?

php - jQuery 远程验证帮助

javascript - 表单提交空值

PHP - html 表单的安全性动态添加行到 CSV

javascript - 从本地服务器访问本地网络上的客户端打印机

php - 在 WooCommerce 订单中显示 ACF 订单自定义字段