2

以下のコードで奇妙な動作をします:

function update(txt, _)
{
    #text = <>{txt}</>
    #data = <>{txt}</>
}

command = <a onclick={update("test1", _)}> change text1 </a> <+>
      <a onclick={update("test2", _)}> change text2 </a>    


content = <textarea style="width:30%;" rows=1 id=#text > filename </textarea>
    <textarea style="width:100%;" rows=30 id=#data > This is a text area </textarea> 



Server.start(
   Server.http,
   [
     {page: function() {command <+> content}, title: "test" }
   ]
)

「changetext1」または「changetext2」のリンクをクリックすると、2つのテキスト領域でテキストが更新されますが、これらのテキスト領域の1つの値を編集するとすぐに、リンクをクリックすると更新に失敗します。

なんで ?

4

1 に答える 1

2

これは、テキストエリアを編集すると、ブラウザがテキストエリア内のHTMLコンテンツではなく、テキストエリアの「値」属性を考慮するためだと思います。

したがって、機能するには、次のことを行う必要があります。

function update(txt, _)
{
    Dom.set_value(#text, txt)
    Dom.set_value(#data, txt)
}
于 2012-04-22T22:52:47.973 に答える