一旦达到宽度,我想防止在 HTML 表格单元格上进行额外输入。
该表具有固定布局、无换行和特定宽度。溢出当前设置为隐藏。
是否可以过滤(并最终阻止)输入,使其在固定宽度处停止,从而不会出现溢出(隐藏或其他)。我目前正在使用 jQuery 过滤回车,以便单元格不会扩展到其他行。
也许我对 HTML 表格的要求太多了……
一旦达到宽度,我想防止在 HTML 表格单元格上进行额外输入。
该表具有固定布局、无换行和特定宽度。溢出当前设置为隐藏。
是否可以过滤(并最终阻止)输入,使其在固定宽度处停止,从而不会出现溢出(隐藏或其他)。我目前正在使用 jQuery 过滤回车,以便单元格不会扩展到其他行。
也许我对 HTML 表格的要求太多了……
一种可能的解决方案是将单元格内容复制到keydown
隐藏字段中并计算该字段的值:
$("table input").on("keydown", function(e) {
$("#copy").text(this.value);
var width = $("#copy").outerWidth();
console.log("w: " + width);
var code = e.keyCode ? e.keyCode : e.which;
if (width > 50 && code !== 8 && code !== 49) {
return false;
}
});
我用这样的解决方案创建了一个小提琴:http: //jsfiddle.net/scaillerie/hnRjB/2/。
input
需要注意的一点是 font-family 和 font-size 在and 中应该是相同的div
,才能有正确的值,这就是 CSS 规则的原因:
* {
font-family: arial;
font-size: 1em;
}
但是*
,您应该限制以适合您的需要(例如,table input, #copy
),而不是 。
编辑 :
请注意,使用此代码,用户可以输入超过输入长度的内容,但您可以在复制的字段中添加一些“长”字符,以测试宽度:http: //jsfiddle.net/scaillerie/hnRjB /3/。