【问题标题】:Handle `<select>` with only one value generated dynamically仅动态生成一个值的处理 `<select>`
【发布时间】:2012-04-11 07:12:03
【问题描述】:

我有一个动态生成的&lt;option&gt; .. &lt;/option&gt;,它被插入到&lt;select&gt;

当出现只有 1 个 &lt;option&gt; 值的情况时,我不希望用户查看组合框并打算单击并期待更多值。

由于只有一个值,我可以关闭&lt;select&gt; 的活动以产生像停用它一样的下拉菜单吗?

这个-

&lt;select disabled="disabled"&gt;

也意味着我无法通过$_POST 提交表单时获取变量值?

我可以用 jQuery 做点什么吗?不过我更喜欢 HTML。

编辑

刚刚检查:&lt;select disabled="disabled"&gt; 不允许为&lt;select&gt; 发布表单数据

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    在伪代码中:

    switch (number of options)
        case 0:
            display nothing
            break;
        case 1:
            display the option as normal text (maybe in a simple <div>)
            break;
        default:
            create and display a combo box
            break;
    

    不要忘记:Jquery 是 javascript!仍然允许您在 javascript 中执行的所有操作。

    【讨论】:

    • 谢谢。 jQuery 是一个 js,我知道。需要以更简单和更好的方式来做。最后一个选项显然是手动管理它,但我想知道 HTML 提供的更多功能。
    • 如果您需要将值与表单一起发送,您可以使用&lt;input type="hidden"&gt;
    【解决方案2】:

    您可以在唯一选项中使用 selected ,而不是该选项的值:

    <select name="data" style=" disabled="disabled">  
         <option value="1" selected>1</option>
    </select>
    

    使用以下代码,您可以检查 select 有多少个选项。

    $('#data1').children().length
    

    如果长度为 1,则添加禁用并选中:

    if($('#data1').children().length == 1) {
         $('#data1').attr('disabled', 'disabled');
         $('#data1').children()[0].attr('selected', 'selected');
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多