我正在尝试创建一个简单的电梯网络应用程序。我想通过片段JsCmds返回函数在我的视图中显示<span>
中的一些数据。到目前为止我尝试了以下代码。
在我的视图中
<div id="ticketDiv" style="display:none;border:2px solid #FF00FF">
<p>This is a sample div which show and hide while ajax calling</p><br />
Ticket Number: <span id="ticketNumber"></span>
<input id="testId" value="test"/>
</div>
和在代码段
class ShowBookedTicket {
def showBookedTicket(s: String): JsCmd = {
JsCmds.JsHideId("PGMainDiv")&
JsCmds.JsShowId("ticketDiv")&
JsCmds.SetValueAndFocus("testId","12345")
//JsCmds.SetValById("ticketNumber", "1234")
//JsCmds.SetHtml("1234","<span></span>")
//"#ticketNumber" #> "12345"
//"#ticketNumber *" #> "12345"
//JsCmds.Function("testJsFunction",List("param"),SHtml.ajaxCall( () => JsRaw("""$('#ticketDiv').show()""")).cmd)._2
}
def render = "*" #> {
"#PGOK [onClick]" #> SHtml.onEvent(showBookedTicket)
}
}
我也尝试了所有注释行。但我没有得到任何正确的结果。在JsCmds.SetValueAndFocus("testId","12345")
和JsCmds.SetValById("ticketNumber", "1234")
,如果我给出文本框ID,那么它正在工作。我该如何修复跨度中的数据。任何人都可以给出一个答案。
Thanxx .. !!!
答案 0 :(得分:1)
我不完全确定您遇到的确切问题,并且正在做一些假设,因为您只有一部分HTML被调用 - 例如,什么是PGMainDiv
?如何调用代码段,#PGOK
等等。
但是,我认为它看起来像:
<div data-lift="ShowBookedTicket">
<div id="ticketDiv" style="display:none;border:2px solid #FF00FF">
<p>This is a sample div which show and hide while ajax calling</p><br />
Ticket Number: <span id="ticketNumber"></span>
<input id="testId" value="test"/>
</div>
<input type="button" id="PGOK" />
</div>
如果是这种情况那么你所拥有的似乎是有效的。因此,我认为注释代码存在问题。对于那些,代码中有一些项目:
JsCmds.SetHtml
将要替换的元素的id和NodeSeq
作为参数。您评论过的版本都没有。如果您将其更改为:
JsCmds.SetHtml("ticketNumber", <span>1234</span>) //No quotes around the XML
"#ticketNumber" #> "12345"
无法在您的方法中使用,因为它是CssSelector
,需要应用于NodeSeq
。这只会发生在render
内或者您手动调用apply
。
此外,如果更容易,您还可以通过JsCmds.Run
发出任意Javascript。因此,您也可以直接使用jquery函数,例如:
JsCmds.Run("$('#ticketNumber').html('1234')");