2

自動的にサイズ変更されたテキスト入力を作成するための次のコードがあります。

// 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" />

問題: Firefox と Opera でのみ、入力のサイズ変更が Safari または Chrome で機能しません。私はjquery 1.3.2を使用していますが、それがjqueryまたは私の実装のバグかどうかを知りたいです.

編集: 申し訳ありませんが、最初は十分に明確ではありませんでした。壊れているのは、その場で入力のサイズを更新しようとしている部分です。私の悪い。これまでのフィードバックに感謝します。非常に役立つリンクがいくつかあります。

4

4 に答える 4

3

サイズ属性がクロスブラウザーで機能するとは思えません。size 属性を変更するのではなく、入力フィールドの maxlength と css width を設定するように切り替えます。

Webkit のバグ/サポートされていない機能のようです。どの Safari/Chrome 共有。

于 2009-04-28T02:33:28.617 に答える
1

SafariもChromeも一部の属性を尊重しません。ただし、css要素を介して設定できます。うまく機能します。

$(this).css("width","4em");

たとえば、onclickを入力すると、ChromeでonClick属性が機能しないことに気付きました。

于 2010-01-08T13:38:01.517 に答える
1

サイズ属性の設定に問題があるようです。この行:

$(this).attr("size",size);
于 2009-04-27T17:57:19.590 に答える
1

のjQueryドキュメントによるとkeydown()

// Different browsers provide different codes
// see here for details: http://unixpapa.com/js/key.html    
// ...

参照されているページを確認して、Safari/Chrome/Webkit で Enter キーの値が異なるかどうかを確認しましたか?

于 2009-04-27T17:38:46.373 に答える