用于单选的所选插件的占位符文本不起作用

Posted

技术标签:

【中文标题】用于单选的所选插件的占位符文本不起作用【英文标题】:placeholder text for chosen plugin for single select not working 【发布时间】:2013-12-10 15:01:02 【问题描述】:

我在我的代码中实现了单选插件。我正在尝试为搜索框添加占位符文本,但我不能。我尝试了以下方法:

<select id="search_pi" name="search_pi" type="text" class="chosen-select"
        style="width:450px;" onchange="this.form.submit()" >

  <option value="">Search Project/Initiative...</option>
  <?php
    include "../includes/search_dropdown.php";
    foreach($proj_ini_Array as $qa)
      echo "<option value = \"$qa\">$qa</option>";
    
  ?>

JS

<script>
  $(document).ready(function() 
    $('.chosen-select').chosen(
      placeholder_text_single: "Select an option",
      no_results_text: "Oops, nothing found!"
    );  
  );
</script>

在选择字段中,我也尝试使用data-placeholder="Select an option",但这也无济于事。有人可以告诉我我错过了什么吗?

提前致谢。

【问题讨论】:

占位符文本?您的意思是在第一个仅提供信息的&lt;option&gt; 标记上添加disabled 属性,因此无法在下拉列表中选择它? 是的,完全正确。表单框中突出显示的文本。 【参考方案1】:

好的。我找到了答案。我们需要将第一个选项设置为空白,以便为单选搜索框激活占位符文本。

<select id="search_pi" name="search_pi" type="text" class="chosen-select" style="width:450px;" onchange="this.form.submit()" >

  <option> </option>
  <?php
    include "../includes/search_dropdown.php";
    foreach($proj_ini_Array as $qa)
      echo "<option value = \"$qa\">$qa</option>";
    
  ?>

在上述情况下,占位符文本将默认为“选择一个选项”。

对于单个搜索选择框的自定义占位符文本,您可以编辑您的 js 文件,如下所示,并将第一个选项留空以显示占位符文本:

<script>
  $(document).ready(function() 
    $('.chosen-select').chosen(
      placeholder_text_single: "Select Project/Initiative...",
      no_results_text: "Oops, nothing found!"
    );  
  );
</script>

【讨论】:

【参考方案2】:

select 标签中使用data-placeholder="YOUR TEXT"

【讨论】:

这应该是公认的答案!它直截了当,更易于配置!【参考方案3】:

要使您的第一个选项只是一个指导文本,但用户无法选择它,请使用:

<option selected="selected" disabled>Search Project/Initiative...</option>

* 编辑 *

抱歉,一开始没有清楚地阅读您的问题。

显然第一个&lt;option&gt; 必须是空的。见this jsfiddle。

【讨论】:

这听起来绝对是一个选项......但我更喜欢使用选择提供的占位符文本功能。看看这个链接harvesthq.github.io/chosen/options.html @tOmppa- 我想通了 :) 但我无法回答自己的问题 :(。对于多选框,我们不必将第一个选项保留为空白。 过了一天你就可以回答了,我相信。【参考方案4】:

用户回复@Zack Joerdan 解决了我的问题。 所以选项里面的spring需要值

<select placeholder="Placeholder goes here">
    <option value=""><!-- Empty option goes here. --><option>
    <option>Other Option</option>
</select>

【讨论】:

【参考方案5】:

如果您通过 HTML 而不是 JS 构建,实际上有一个更好/更简单的解决方案来解决这个问题。你必须做两件事。

    &lt;select&gt; 中的第一个 &lt;option&gt; 应为空。 您应该在您的&lt;select&gt; 中包含placeholder="Placeholder goes here"。显然这曾经被称为data-placeholder,我认为这导致了一些混乱。

所以,总共:

<select placeholder="Placeholder goes here">
    <option><!-- Empty option goes here. --><option>
    <option>Other Option</option>
</select>

【讨论】:

【参考方案6】:

您只需添加data-placeholder="YOUR TEXT" 即可,无需使用jquery

这是示例

<select id="search_pi"  data-placeholder="Select Project/Initiative..." name="search_pi" type="text" class="chosen-select" style="width:450px;" onchange="this.form.submit()" >
              <?php
                include "../includes/search_dropdown.php";
                foreach($proj_ini_Array as $qa)
                  echo "<option value = \"$qa\">$qa</option>";
                
              ?>
</select>

【讨论】:

【参考方案7】:
        <select data-placeholder="Select language" class="chosen-select">
            <option></option>
            <option>English</option>
            <option>Urdu</option>
            <option>Hindi</option>
            <option>Chinese</option>
        </select> 

在 select 上添加 data-placeholder 属性并确保第一个选项为空。

【讨论】:

以上是关于用于单选的所选插件的占位符文本不起作用的主要内容,如果未能解决你的问题,请参考以下文章

占位符在 IE8 和 IE9 中不起作用,即使使用 jQuery 插件

CSS:输入占位符在Mozilla中不起作用后

占位符在 IE9 中不起作用 [重复]

HTML5 输入类型占位符在 IE 中不起作用

输入占位符css在IE9中不起作用[重复]

文本区域占位符不起作用