javascript - 选择另一个后启用 selectBox

标签 javascript php jquery json

我试图设置两个 select-boxes从第一个选择框中选择一个选项后启用第二个选择框即可工作。

结果来自带有 js 的 json 到我页面上的 div。

第二个选择设置为 disabled

第一次尝试:

JavaScript:

$(document).ready(function () {
    $.getJSON('./system/feeds/built.search.php', function (json) {
        var output = '';
        output += '<div class="search_block">';
        output += '<h2><img src="images/search_icon_big.png" alt=""> Search used cars</h2>';
        output += '<form id="form1" class="form-style" method="post">';
        output += '<label><strong>Company</strong><br>';
        output += '<span class="select1">';
        output += '<select name="companies" id="companies">';
        output += '<option>All</option>';
        output += '<option value="company">Company</option>';
        for (var i = 0; i < json.company_models.length; i++) {
            output += '<option value=' + json.company_models[i].company + '>' + json.company_models[i].company + '</option>';
        }
        output += '</select>';
        output += '</span>';
        output += '</label>';
        output += '<label><strong>Model</strong><br>';
        output += '<span class="select1">';
        output += '<select name="models" id="models" disabled>';
        output += '<option>Choose Company</option>';
        $('#companies').change(function () {
            if (this.value) {
                document.getElementById('#models').disabled = true;
            } else {
                document.getElementById('#models').disabled = false;
            }
        });
        for (i = 0; i < json.company_models.length; i++) {
            output += '<option value=' + json.company_models[i].model + '>' + json.company_models[i].model + '</option>';
        }
        output += '</select>';
        output += '</span>';
        output += '</label>';
        $('#search').html(output);
    });
});

HTML:

<div id="search" class="grid_12"></div>

jsfiddle.net/mJdmQ

为了让它更容易:

Company | Model :要从型号中选择选项,我必须首先从公司中选择一个选项

PS:为了节省您引用类似问题的时间,我已经看过它们...

最佳答案

您正在寻找带有 jQ​​uery 的 .change() 事件(纯 js 中的 onchange),并且由于这是动态加载的数据,因此您需要使用.on():

$(document).on("change", "#companies", function() {
    this.value == "All" ? $("#models").prop("disabled", true) : $("#models").prop("disabled", false);
});

关于javascript - 选择另一个后启用 selectBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838708/

相关文章:

javascript - 可以使用 bxslider getCurrentSlide 方法将类分配给事件幻灯片吗?

javascript - 如何在 toastr 中显示确认对话框

php - 从表单编写简短的 PHP 更新代码

php - Magento getUrl 不适用于目录/类别对象?

php - iOS推送通知返回码102

php - 调整要上传的图像大小后,将 XHR 请求与表单测试结合起来

jquery - 尝试访问 poplight 弹出窗口中的其他变量

javascript - ES6对象中的方法: using arrow functions

javascript - React - 没有依赖项数组的 useMemo 与空数组

javascript - 使用滚动条后 Canvas 像素坐标偏移