【问题标题】:Enable selectBox after selecting another one选择另一个后启用 selectBox
【发布时间】:2013-09-16 22:58:37
【问题描述】:

我试图通过在从第一个选项中选择一个选项后启用第二个选择框来设置两个 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: 要从 Model 中选择选项,我必须首先从 Company

中选择一个选项

PS:为了节省您参考类似问题的时间,我已经查看了它们...

【问题讨论】:

  • 始终在问题中包含您的代码。无法保证链接代码将无限期可用,因此应包含代码的所有相关部分。我很惊讶您甚至能够发布该链接。我可以发誓在没有代码的问题中不允许链接到 jsfiddle。

标签: javascript php jquery json


【解决方案1】:

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

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

【讨论】:

  • 已经像我提到的那样检查它们。我试过你的意见,但它不起作用。奇怪的想法是没有错误。它只是不工作
  • @JohnPriestakos -- 哎呀,动态数据,一秒钟
  • @JohnPriestakos -- 立即尝试。
  • 是的。终于。谢谢@tymeJV。谢谢你,我现在检查一下,如果再次选择&lt;option&gt;All&lt;/option&gt;,如何再次禁用它。
  • @JohnPriestakos - 简单的三元语句,我用该功能更新了答案
猜你喜欢
  • 1970-01-01
  • 2015-09-01
  • 2020-12-28
  • 1970-01-01
  • 2012-05-13
  • 2023-04-07
  • 1970-01-01
  • 2022-01-17
  • 2021-01-18
相关资源
最近更新 更多