1

この質問とこのフィドルで指摘されているように、入力を挿入するときに value 属性が DOM に追加されていないように見えますが、MooTools はそれを内部で処理しているようです。残念ながら、これは入力が次のように注入されることを意味します。

new Element("input", {type: "text", value: "injected value"}).inject(parent);

次のように選択することはできません。

parent.getElements('input[value="injected value"]').length;

(これは、value 属性が存在する場合のように、1 ではなく 0 を返します)

私のプロジェクトでは、空の入力ボックスを挿入する必要がありますが、まだ空の入力ボックスがない場合に限ります。if(parent.getElements('input[value=""]').length == 0)ただし、空白の入力がいくつあっても、これは常に true に解決されます。

私の目標を達成するためのより良い方法はありますか、それともバグのように見えるものの修正はありますか?

4

1 に答える 1

1

次を追加してみてください。

var x = new Element("input", {type: "text", value: "injected value"}).inject(parent);
x.setAttribute("value",x.value);

警告:これにより、要素のvalue属性が反映されないという問題は修正されますが、value属性は、入力の内容と同期されないため、通常、フィールドが空かどうかを確認するのに適した方法ではありません。

次のようなものを使用することをお勧めします。

$$('input[type=text]').filter(function(item){return (item.value=="");})
于 2012-10-18T11:57:07.037 に答える