我有以下一些代码来创建自动调整大小的文本输入:
// setup quick jump input
$("#goto").keydown(function(e){
var size = $(this).val().length;
// sanity
if ( size < 1 ) {
size = 1;
}
$(this).attr("size",size);
// if enter then GOTO->
if ( e.keyCode == 13 ) {
window.location.href = "/" + $(this).val();
}
});
HTML:
<input type="text" id="goto" size="1" name="goto" />
问题: 调整输入大小不适用于Safari或Chrome,只适用于Firefox和Opera。我正在使用jquery 1.3.2,并想知道它是否是jquery或我的实现中的错误。
编辑:对不起我起初不够清楚 - 这是我试图更新动态输入大小的部分。我的错。感谢到目前为止的反馈,那里有一些非常有用的链接。答案 0 :(得分:3)
我怀疑size属性可以跨浏览器工作。我将切换到设置输入字段的maxlength和css宽度,而不是更改size属性。
看起来像webkit中的错误/不受支持的功能。哪个Safari / Chrome共享。
答案 1 :(得分:1)
根据keydown()
上的jQuery文档:
// Different browsers provide different codes
// see here for details: http://unixpapa.com/js/key.html
// ...
您是否检查过the page referenced以查看Safari / Chrome / Webkit是否具有不同的Enter键值?
答案 2 :(得分:1)
问题似乎在于设置size属性。这一行:
$(this).attr("size",size);
答案 3 :(得分:1)
Safari和Chrome不尊重某些属性。但是你可以通过css元素设置它。效果很好。
$(this).css("width","4em");
例如,我注意到当输入 onclick 时, onClick 属性在Chrome中无效。