Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改页面加载时提升中ajaxSubmit的状态_Javascript_Jquery_Scala_Lift - Fatal编程技术网

Javascript 如何更改页面加载时提升中ajaxSubmit的状态

Javascript 如何更改页面加载时提升中ajaxSubmit的状态,javascript,jquery,scala,lift,Javascript,Jquery,Scala,Lift,SHtml.ajaxSubmit 我正在使用带升降机的Scala。我正在尝试使用CSS绑定创建一个SHtml.ajaxSubmit(),我希望根据外部属性启用或禁用它。到目前为止,我成功地显示了submit并进行了所有其他连接,但我既不能在创建ajaxSubmit()时调用JS方法,也不能以任何其他方式进行此操作 "#myCheckbox" #> SHtml.ajaxCheckbox(btns.isChecked, btnState => checkboxClicked(btnSta

SHtml.ajaxSubmit 我正在使用带升降机的Scala。我正在尝试使用CSS绑定创建一个SHtml.ajaxSubmit(),我希望根据外部属性启用或禁用它。到目前为止,我成功地显示了submit并进行了所有其他连接,但我既不能在创建ajaxSubmit()时调用JS方法,也不能以任何其他方式进行此操作

"#myCheckbox" #> SHtml.ajaxCheckbox(btns.isChecked, btnState => checkboxClicked(btnState), "id" -> "myCheckbox") &
"#myBtn *" #> SHtml.ajaxSubmit("click me", btnClicked) 

我还有两个案例类来启用或禁用按钮状态:

case class Disable(id: String) extends JsCmd {
  def toJsCmd = "$('#"+id+"').children().prop('disabled', 'true');"
}

case class Enable(id: String) extends JsCmd {
  def toJsCmd = "$('#"+id+"').children().removeProp('disabled');"
}
最后,我有一个变量,它告诉我是否应该启用此功能,但在页面以电梯方式加载后,我仍然无法更改按钮的状态。

这是HTML表单,其中是我要禁用的按钮:

    <lift:surround with="default" at="content" xmlns:item="http://java.sun.com/xml/ns/javaee">
        <div class='pageTitle'>Some title</div>
        <p>
            some text
        </p>
        <form data-lift="form.ajax">
            <div class="lift:MyScalaCodeBehind.btns">
                <table>
                    <tr>
                        <td>
                            <!-- checkbox -->
                            <div id="myCheckbox"/>
                            <label for="myCheckbox">some text</label>
                        </td>
                    </tr>
                    <tr>
                        <!-- button -->
                        <td id="myBtn"/>
                    </tr>
                </table>
            </div>
        </form>
</lift:surround>

一些头衔

一些文本

一些文本

顺便说一句,我测试过了,这些事件似乎对我不起作用

我使用JS成功地更改了按钮的状态。我找不到一种方法来解决这个问题,这就是为什么我将Lift与JS结合使用。
我创建了一个自定义JS函数来完成这项工作,并在页面加载时调用了它。因为我希望页面后面的所有业务逻辑都在Scala源代码中,所以在创建表单时,我向S.appendJs()注册了this命令。简而言之,以下是代码:

S.appendJs(CustomOnLoadCmd()) // this is done when the form is initialized

以下是CustomOnLoadCmd的实现:

case class CustomOnLoadCmd() extends JsCmd {
  def toJsCmd = "$(document).ready(function() {\n" +
    "                if ($('#myCheckbox').prop('checked')) {\n" +
    "                    $('#myBtn').children().prop('disabled', 'true');\n" +
    "                } else {\n" +
    "                    $('#myBtn').children().removeProp('disabled');\n" +
    "                }\n" +
    "            });"
}

如果您遇到像我这样的问题,并且没有任何其他解决方案,我希望这对您有所帮助。

您可以使用表单的HTML更新吗?@Brett我已经为表单添加了HTML代码。它的名字等可能看起来有点奇怪,但这是因为我把它弄糊涂了。生成的HTML看起来怎么样?对于HTML5中未定义为自动关闭的标记,使用自动关闭标记(
而不是
)将导致提升解析器出现问题。看,嗯,谢谢。我不知道这件事。