SHtml.textarea作为CssSel

时间:2013-11-21 11:28:21

标签: lift

有没有办法创建具有CssSel / SHtml.textarea / SHtml.text / SHtml.input逻辑的SHtml.button

我想要的是拥有NodeSeq

<textarea class="dontDeletePlease"></textarea>

和CssSel一样

"*" #> SHtml.textarea(...)

有结果

<textarea class="dontDeletePlease" onsubmit="..." name="..."></textarea>

但是,相反,我会删除课程"dontDeletePlease"。还有所有其他属性。

有没有办法创建一个CssSel来应用它保持html属性的逻辑?

1 个答案:

答案 0 :(得分:1)

我认为你有两种选择。您可以使用Lift funcMap将该功能直接添加到现有textarea。除了直接向您的代码添加名称属性外,这不会修改任何内容。这类似于Lift does internally with SHtml.textarea

"*" #> {
  fmapFunc(SFuncHolder((t) => //do something))(funcName =>
    "* [name]" #> funcName
  )
}

另一种方法是从CSS Selector中获取属性并将它们传递给您的转换,如下所示:

"*" #> { ns:NodeSeq =>
  ns.map{ n =>
    val ta = SHtml.textarea("", (t) => //do something)
    ta % n.attributes
  }
}

这将使用SHtml.textarea创建输入,然后将现有元素中的所有属性添加到新元素。