javascript - 使用 PHP 和 Javascript 在默认 HTML 选择上运行函数

标签 javascript php html-select

我尝试在 HTML 选择上运行默认函数,但默认函数不适用于默认选择值,但它适用于用户选择

<?php
    $status_selected = 'A002';
?>
<!-- HTML Select 1 -->
<select id="state" class="l" name="state" onchange="Func()">
<option value="A001" <?php if($status_selected == "A001") echo "selected"; ?> data_item=" , StateA003 One, A003 State Two, A003 State Three">A001</option>
<option value="A002" <?php if($status_selected == "A002") echo "selected"; ?> data_item=" , A003 State One, A003 State Two, A003 State Three">A002</option>
<option value="A003" <?php if($status_selected == "A003") echo "selected"; ?> data_item=" , A003 State One, A003 State Two, A003 State Three">A003</option>
</select>
<!-- HTML Select 2 -->
<label for="city">Item : </label><select id="city" name="item" class="l"  onchange="onSelected()">

<script>
    function Func() {
        var city = document.getElementById('item');
        var state = document.getElementById('state');
        var val=state.options[state.selectedIndex].getAttribute('data_item');
        var arr=val.split(',');
        item.options.length = 0;
        for(i = 0; i < arr.length; i++) {
            if(arr[i] != "") {
                item.options[item.options.length] = new Option(arr[i],arr[i]);
            }
        }
    }

    function onSelected() {
        var item = document.getElementById('item').value;
        var state = document.getElementById('state').value;
        console.log('Parent : ' + state+ ', Item : ' + item);
    }
</script>

它加载 HTML Select One 然后在 HTML Select Two 中选择项目,但是 HTML Select Two 仅由 手动用户工作选择 并且不适用于默认的编程值

以上所有代码都在 PHP 文件中。

我该如何解决?

最佳答案

不确定它是否相关,但也许你想要一个 chained select盒子?如果不是,请澄清您的问题,很难理解。


编辑:所以真正的问题是通过代码选择正确的选项。在这种情况下,这是 How do I programmatically set the value of a select box element using javascript? 的副本.

在你的onload script (或者如果脚本位于页面底部,则在函数之后),也运行 Func(),然后设置 #city 的值:

Func();
var state = document.getElementById('state'),
    city = document.getElementById('city'),
    selectedCity = state.getAttribute('data-selected-city');
if(selectedCity) {
    city.value = selectedCity;
}

您需要将所选城市存储在某个地方,我的建议是将其添加到选择中:

<select id="state" data-selected-city="new-york">
<!--and so on--->
</select>

注意:在 HTML5 中设置数据属性 should begin with data- , 不是下划线。所以它是 data-item="",而不是 data_item=""。这将在运行 HTML 验证器时给您一个警告。

关于javascript - 使用 PHP 和 Javascript 在默认 HTML 选择上运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37764291/

相关文章:

jquery - 使用 jQuery select 更改它不会显示选定的选项

javascript - 如果可能的话,我真的不应该使用 setInterval 和 setTimeout 吗?

javascript - 无法向动态创建的元素添加类

javascript - 使用 $provide 重命名第 3 方 Angular 指令 - 不工作

javascript - 如何修复下拉列表中项目的显示?

javascript - AngularJS 错误? - 选择多个 - 根据选项数量动态设置大小

javascript - 为什么我的 html5 canvas 动画如此闪烁?

javascript - 从两个依赖的下拉列表中获取表单数据到 php

php - MySql 限制和偏移给出错误结果

php - Wordpress Ajax 用于搜索结果 - 查询仅返回 1 个结果