当前位置: 首页 > 知识库问答 >
问题:

方法在onclick事件上未被调用

叶福
2023-03-14

我正在使用JSF 2.0创建页面:

<h:selectBooleanCheckbox id="checkbox1" title="Published" 
                         onclick="#{StageGate.setMyCheckboxValue()}" />

我期待setMyCheckboxValue()在单击复选框时被调用。但是,加载页面时调用一次setMyCheckboxValue()。

如果我写

<h:selectBooleanCheckbox id="checkbox1" title="Published" 
onclick="#{StageGate.setMyCheckboxValue()}; alert(document.getElementById('checkbox1').checked);" />

每次点击都会收到警报。

我的问题是:当我收到警报时,为什么每次onclick事件都不调用setMyCheckboxValue()

注意:我也尝试过AJAX,但复选框保持不变。

共有2个答案

许自强
2023-03-14

onClick用于客户端javascript调用。我认为您希望在单击复选框时调用服务器端的函数。

这是代码:

<h:selectBooleanCheckbox id="checkbox1" title="Published"
                         value="#{StageGate.myCheckBox}" >
    <f:ajax event="change" execute="@this"
            action="#{StageGate.setMyCheckboxValue()}" />
</h:selectBooleanCheckbox>

我希望这对你有用。

汪辰阳
2023-03-14

onClick属性适用于客户端(javascript)方法,不会在服务器端更改任何内容。

如果要更改服务器端值,则需要value属性:

<h:selectBooleanCheckbox value="#{StageGate.myCheckboxValue}" .../>

请注意,我将您的setMyCheckboxValue()更改为myCheckboxValue,因为setter方法是由jsf自动检测的(如果您正确定义变量foo与gettergetFoo()和settersetFoo(...)

 类似资料:
  • 问题内容: 我写了一个JavaScript类,其中定义了一个方法 现在,在我的html中,我试图按如下方式调用它… 当我点击一个按钮时,以上将被调用。这里的问题是,页面加载时会自动调用顶部的事件。这有什么问题呢? 问题答案: 您正在立即调用该函数。 当您在函数引用上保留括号时,您基本上是在说: 评估closeThis函数并将结果分配给onclick 当您真正想要做的是将函数引用分配给点击处理程序时

  • 我试图捕获一个,其中包含XML规则中不允许使用的字符。(例如,” 我已经阅读了描述方法的Javadoc。但是,我没有看到它无法捕获ValidationEvent。 从指定的InputStream中解组XML数据并返回结果内容树。使用此形式的解组API时,验证事件位置信息可能不完整。 在最后一次尝试中,我尝试在网上搜索,但什么也找不到<任何帮助都将不胜感激:D 我很抱歉补充一个问题。(POJO类有点

  • 问题内容: 我是python和Flask的新手。我有一个带按钮的Flask Web App。当我单击按钮时,我想执行python方法而不是Javascript方法。我怎样才能做到这一点? 我看过python的示例,它使用这样的表单标签将我重定向到新页面 但我不希望它将我重定向到新页面。我只希望它执行python方法。 我正在为Raspberry Pi机器人汽车制作这个。当我按下前进按钮时,我希望它

  • 问题内容: 我有一个叫做React的组件,有很多子组件(另一个React组件)。我希望能够从内部对每个事件声明一个事件。我尝试执行以下操作: 不用说,我没有得到任何“点击!” 出现在我的控制台中 Chrome中的React检查器会指示事件已注册,并应使用上述功能体进行注册。 因此,我得出结论,我无法在实际标签上注册事件(不过,我不确定为什么会这样)。我如何才能实现这一目标呢? 问题答案: 这取决于

  • 在React router中,我必须单击和onClick属性,如下所示 属性导航到关于路线 当我给超时内嵌函数调用点击,其导航到新页面,并在某个时候状态得到更新,导致显示以前的名称,直到状态更新为新名称。 是否有一种方法,只有在onClick函数中的代码执行之后,它才会导航到新路由。 您可以[在这里]获取整个代码(https://github.com/pushkalb123/basic-react

  • 问题内容: 我有这个功能,当我点击标签时,我想调用两个功能,一个来自父组件的props的处理程序功能,还有这个功能 如何调用这两个函数?这是父组件的处理函数 问题答案: 这样写: 或创建一个函数,将其用作单击处理程序。在该函数内部调用其他两个函数,如下所示: 请参阅使用箭头功能的两种方法: 1-简洁的机身: 2块体 在内部的程序块主体(函数的主体)中,我们可以执行任意数量的任务。 像这样: