0

我正在尝试创建一个简单的电梯网络应用程序。我想<span>从片段 JsCmds 返回函数的视图中显示一些数据。到目前为止,我尝试了以下代码。

在我看来

 <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)
  }
}

我也尝试了所有注释行。但我没有得到任何正确的结果。如果我给文本框ID,那么它正在工作JsCmds.SetValueAndFocus("testId","12345")JsCmds.SetValById("ticketNumber", "1234")我怎样才能修复跨度中的数据。谁能给出一个答案。

谢谢..!!!

4

1 回答 1

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 和 a 作为参数NodeSeq。您评论的版本都没有。如果您将其更改为:

 JsCmds.SetHtml("ticketNumber", <span>1234</span>) //No quotes around the XML

"#ticketNumber" #> "12345"不适用于您的方法,因为它是 aCssSelector并且需要应用于 a NodeSeq。这只会发生在内部render或如果您手动调用apply它。

JsCmds.Run此外,如果这使事情变得更容易,您还可以发出任意 Javascript 。因此,您也可以直接使用 jquery 函数,例如:

JsCmds.Run("$('#ticketNumber').html('1234')");
于 2013-04-23T18:34:52.753 回答