限制vue中的文本长度-多选

5lwkijsr  于 2022-11-25  发布在  Vue.js
关注(0)|答案(1)|浏览(275)

我在项目中使用了“vue-MultiSelect”包中的“Single Select”对象进行“搜索选择”。选择列表中的选项太长(因为它们是站点地址/URL),它们流过输入框大小并破坏UI。我可能需要设置一个字符限制来填充值,这可能有助于保持UI完整。我可以使用哪个类来限制填充的文本的长度?或者有什么更好的选择?
对于正常选择列表,我们可以设置数据限制,如data-limit =“37”,以限制文本长度。

<select
                  v-model="filter.url_name"
                  class="w-4/6 relative truncate overflow-hidden form-select pr-10 appearance-none "
                  aria-label="Default select example">
                  <option
                    class="absolute w-4/6 truncate overflow-hidden right-0"
                    data-limit="37"
                    :value="item"
                    v-for="(item, index) in requiredUrlsFiltersData"
                    :key="index"
                  >
                    {{ item }}
                  </option>
                </select>

对于vue-multi select,我尝试了同样的方法,并尝试将其传递到如下所示的方法中

@input="
                        siteSelected(
                          filter.url_name,
                          37,
                          filter.url_name.length
                        )
                      "

并返回值

siteSelected(str, max, len) {  
      return len > max ? str.substring(0, 37) : str;
    },

两个都不管用。

<multiselect
                      v-model="filter.url_name"
                      :options="requiredUrlsFiltersData"
                      placeholder="select a url"
                      class="max-w-sm"
                      data-limit="37"
                      :rules="maxlength"
                      @input="
                        siteSelected(
                          filter.url_name,
                          37,
                          filter.url_name.length
                        )
                      "
                      :show-labels="false"   
                    >
                    </multiselect>
lp0sw83n

lp0sw83n1#

您可以尝试使用计算属性。为requiredUrlsFiltersData创建计算属性,在那里您可以限制url的长度并将:options与新的缩短值连接。
第一个

相关问题