提问人:m3t4l 提问时间:5/29/2023 最后编辑:m3t4l 更新时间:5/29/2023 访问量:20
Struts 1 和 JQuery:如何根据文本长度将宽度更改为选项选择
Struts 1 and JQuery: how to dinamically change width to an option select according to the length of the text
问:
我正在使用 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 具有 styleId 和 onchange 属性;其余 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 页面中的每一个页面上处理这个问题。
我该如何解决这个问题?
谢谢大家
答: 暂无答案
评论