2

私は以下を使用しています:

el = doc.createElement("input");
el.size = "2%";

エラーメッセージが表示されます (Firebug で): Index or size is negative or greater than the allowed amount.

以下のように、DOM を適切に構築するのではなく、HTML を挿入しただけで問題なく動作していました。

$rsc.html("<input name = 'myName' type = 'text' value = '" + myVariable + "' size = '2%' />");

2%createElementを受け入れないのはなぜですか?

ありがとう

4

3 に答える 3

2

このsize属性は、パーセントではなく整数のみを受け入れます。これは、入力に入力できる文字の最大数を表します。これをHTMLに入れると、おそらく%は無視され、値は2として解析されます。

入力の幅を調整する必要がある場合は、を使用できますstyle='width:2%'

于 2012-06-22T10:41:28.907 に答える
1

sizeプロパティの単位は文字(純粋な整数)であり、。で他の単位を使用することはできませんsize。2%の幅が必要な場合inputは、次の方法で作成する必要がありますstyle

el.style.width='2%';
于 2012-06-22T10:41:26.413 に答える
1

クロムでの観察

   > var a = document.createElement('input');
   > undefined
   > a.size
   > 20
   > typeof a.size
   > "number"
   > a.size = "10"
   > "10"
   > a.size
   > 10
   > a.size = "1x"
   > "1x"
   > a.size
   > 20
   > a.size = "1%"
   > "1%"
   > a.size
   > 20

Firefoxの場合

>>> var a = document.createElement('input');
undefined
>>> a.size
20
>>> typeof a.size
"number"
>>> a.size = 20
20
>>> a.size = "20"
"20"
>>> a.size = "2%"
Error: Index or size is negative or greater than the allowed amount
[Break On This Error]   
a.size = "2%"

Firefoxがエラーをスローしている間、chromeは無効な整数値を安全に無視すると思います。

于 2012-06-22T10:54:09.030 に答える