Safari和Chrome:动态编辑输入“大小”属性的问题

时间:2009-04-27 17:35:28

标签: javascript jquery safari google-chrome

我有以下一些代码来创建自动调整大小的文本输入:

// 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或我的实现中的错误。

编辑:对不起我起初不够清楚 - 这是我试图更新动态输入大小的部分。我的错。感谢到目前为止的反馈,那里有一些非常有用的链接。

4 个答案:

答案 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中无效。