我知道我可以通过这种方式运行提交 ajaxText 的脚本:
SHtml.ajaxText(myVar, (str) => myVar = str, "onsubmit" -> "myScript();")
我想做的是改为执行 scala 方法。
明显地
SHtml.ajaxText(myVar, (str) => myVar = str, "onsubmit" -> myMethod)
不管用。
有没有办法我可以做到这一点?
您的答案对我来说看起来不错,但是如果您不希望在执行后发生任何事情,则JsCmd
不必执行任何操作。例如:
SHtml.ajaxText(myVar, (str) => {
myVar = str
myMethod()
JsCmds.Noop
})
其中, 与在纯 JavaScriptJsCmds.Noop
中发出几乎相同,因此该函数无需执行任何操作即可返回。return
为了简洁起见,我将代码块内联,但您也可以只做您所做的事情(str) => f(str)
并让您的方法返回JsCmds.Noop
。
我找到了一种方法,但不是那么干净。
由于该功能(str) => myVar = str
也在提交时执行,这就是我所做的:
def f(str:String):JsCmd = {
myVar = str
myMethod()
SetHtml("msg_div",<span> method executed </span>)
}
SHtml.ajaxText(myVar, (str) => f(str))
这样每次我在 ajaxTextmyMethod
中提交修改时都会执行,但我不得不JsCmd
从f
函数中返回一些。
如果您找到更好的方法,请告诉我。