6340 次
2 に答える
2
値が設定されていませんか?
電話すると何が得られますか:input.get('value')
これを(firefoxで)テストしましたが、コンソールがログ<input type="text">
に記録するだけで、実際には値が設定されます。要素をページに追加してみてください。それが表示されます:)
于 2011-06-03T01:35:43.833 に答える
1
私はこの「赤いニシン」で同様の問題を抱えており、それを解決したので、共有したいと思いました。ユーザーが行をクリックしたときに、テーブル行の特定のセルを編集可能にしようとしています:
var cells = this.getElements("td");
for (var ix=0;ix<cells.length; ix++){
if (cells[ix].hasClass("edType_text")){
var celltext = cells[ix].get("text");
cells[ix].set('text','');
var editTag = new Element ('input',{type:'text','value':celltext});
editTag.inject(cells[ix]);
}
}
これはうまくいくように見えましたが、セルをクリックすると編集できませんでした。Firebug および Chrome ツールは、追加された入力タグを次のように示しました。
<input type='text'>
期待される代わりに:
<input type='text' value='xxxxxx' />
ただし、上記でコメントしたように、これは完全に正常です。
「意図的な」エラーを見つけましたか?
もちろん、入力フィールドをクリックすると、行でマウスイベントが再びトリガーされたため、入力できなくなりました!!!! :-{
これを回避するには、if ブロックの最後に次のコード行を追加します。
editTag.addEvent("mousedown",function(event){event.stopPropagation();});
于 2012-07-18T07:40:00.293 に答える