使用元素 ui 选择显示占位符值

Posted

技术标签:

【中文标题】使用元素 ui 选择显示占位符值【英文标题】:Show placeholder value using element ui select 【发布时间】:2022-01-19 22:34:57 【问题描述】:

我在 Vue 中使用 Element UI 库。 我有一组两个单选按钮,还有一个需要共享相同数据的下拉列表。我的一切都按预期工作,但是当用户选择其中一个单选按钮时,下拉菜单会显示该值。

我的最终目标是让下拉列表显示占位符文本,除非当然选择了下拉值。可能是一个观察者来检查是否选择了收音机然后更新下拉列表?

<template>
  <div>
    <el-radio-group ref="selfLanguage" v-model="formData.selfLanguage">
      <ol>
        <li class="radio-list-item">
          <el-radio
            id="selfLanguageEnglish"
            label="English"
            name="selfLanguage"
            class="radio--bold"
          />
        </li>

        <li class="radio-list-item">
          <el-radio
            id="selfLanguageSpanish"
            label="Spanish"
            name="selfLanguage"
            class="radio--bold"
          />
        </li>
      </ol>
    </el-radio-group>

    <el-form-item
      prop="selfLanguage"
      :show-message="false"
      class="form-item--select el-form-item--dropdown"
    >
      <label for="selfLanguage" class="font--primary title-3 font--bold mb-6">
        Other
      </label>

      <el-select
        ref="selfLanguageDropdown"
        v-model="formData.selfLanguage"
        name="selfLanguage"
        class="select-box"
        prop="selfLanguageOther"
        placeholder="Please select one"
        :popper-append-to-body="false"
      >
        <el-option label="French" value="french"></el-option>
        <el-option label="Russian" value="russian"></el-option>
        <el-option label="Italian" value="italian"></el-option>
      </el-select>
    </el-form-item>
  </div>
</template>

<script>
export default 
  watch: 
    'formData.selfLanguage'(newVal, oldVal) 
      if (newVal === 'English' || newVal === 'Spanish') 
        // possibly reset the dropdown or have it display the placeholder text rather than data value
      
    ,
  ,

</script>

【问题讨论】:

我仍然不确定您是否想在 selfLanguage 上使用多个值或单个值。如果是这样,为什么它们都不在 radio 或 select 中。 【参考方案1】:

下拉列表显示相同的值,因为您与其他选择共享相同的模型。如果您想使用 selfLanguage 上的逻辑进行一些计算,您可以拥有两个分离模型(selflanguage、selfLanguageOther),然后定义一个计算变量来决定哪种语言将是最终/选定的。

你可以使用这样的东西。

const selfLanguage = computed(
  () => language.primaryLanguage ?? language.selfLanguageOther
)

【讨论】:

以上是关于使用元素 ui 选择显示占位符值的主要内容,如果未能解决你的问题,请参考以下文章

文本框的占位符值不会更改为原始值?

如何使用 CSS 设置占位符值?

Tailwind CSS 更改占位符选项的文本颜色

是否可以将AdaptiveTextBlock占位符值作为参数列表发送到web api调用

在 iOS 中输入日期占位符值

在运行时使用 intellij 在 Spring boot application.yml 文件中注入占位符值