Struts 1 和 JQuery:如何根据文本长度将宽度更改为选项选择

Struts 1 and JQuery: how to dinamically change width to an option select according to the length of the text

提问人:m3t4l 提问时间:5/29/2023 最后编辑:m3t4l 更新时间:5/29/2023 访问量:20

问:

我正在使用 Java 1.6 和 Struts 1 开发一个旧网站。有很多 jsp 页面(53 页)带有输入表单;在每个表单中,都有一个根据 Struts 1 语法定义的输入选择

<html:select property="sapplication" styleId="selectSmallFont" onchange="changeComboboxValue()">
    <html:option value="-" />
     <logic:present name="<%=SessionAttributes.LIST_APPLICATION_OBJECT%>">
        <html:options collection="<%=SessionAttributes.LIST_APPLICATION_OBJECT%>"
            property="value" labelProperty="label" />
     </logic:present>
</html:select>

只有 2 个 select 具有 styleIdonchange 属性;其余 51 个没有这些属性,但所有 53 个都具有 sapplication 属性。

SessionAttributes.LIST_APPLICATION_OBJECT是从MySQL表中提取的最大100个字符的字符串集合;问题是,当打开带有 sapplication 属性的组合框时,我看到长宽度项被截断,如下所示

0008 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, s...

而不是

0008 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut

在 Stack Overflow 上搜索一些解决方案时,我发现了以下内容(我用 sapplication 替换了原始 id)

...
<head>
...
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

$(document).ready(function() {
  $('#sapplication').css("width", "200px");
  $('#sapplication').change(function(){
    if ($("#sapplication")[0].selectedIndex <= 0) {
      $('#sapplication').css("width", "200px");
    } else {
      $('#sapplication').css("width", "auto"); 
    }
  });
});

</script>
<style>
#sapplication select { 
  width:200px; 
}

#sapplication select:focus {
  width:auto; 
}
</style>
</head>
...

在浏览器上(由于网站过时,它只在 IE 兼容性中工作良好),查看 HTML 源代码,每个带有 sapplication 属性的选择,都编码为

<select name="sapplication">
 <option value="-">-</option>
 ....
</select>

在 JQuery 脚本中,我将

$('#sapplication')

$('select[name ="sapplication"]')

并且,在 CSS 脚本中

#sapplication select

已替换为

select[name="sapplication"]

根据 Stack Overflow 解决方案,在使用此组合框加载 jsp 页面时,默认选项似乎是 200px 宽,并且在更改时,它会线性地扩展到所选选项的全文长度......我在静态页面上尝试了代码,它运行良好,但在我的网站中没有:我仍然看到长宽度选项选择被截断! 我把我的代码放在包含所有 53 个页面的 jsp 主页面中。

我不会在 53 个 jsp 页面中的每一个页面上处理这个问题。

我该如何解决这个问题?

谢谢大家

jquery select combobox struts-1 被截断

评论


答: 暂无答案