1

我在事件上有一个带有 Ajax 功能的输入字段,blur在我的页面上有一个 commandButton。如果我修改输入字段上的值并单击命令按钮而不跳出,首先调用哪个方法?附加到输入字段或按钮的侦听器?

根据我迄今为止的经验,第一个被调用的会有所不同,这导致我的应用程序出现了一些问题。我希望始终首先调用输入字段的侦听器。

有谁知道如何处理这种情况?

更新: 感谢您的回复,在进行了更多故障排除后,我注意到如前所述,首先调用 ajax 侦听器,但在极少数情况下,在侦听器方法完成处理某些所需逻辑之前调用按钮操作。就我而言,我需要侦听器方法在调用按钮操作之前完成处理,否则可能会发生一些意外行为。是否有可能做到这一点?

4

1 回答 1

1

请记住,JSF 中的所有内容都被转换回 HTML 和 JavaScript。因此,一个简单的测试是这样的:

<input type="text" id="field1" onblur="blurFunction();">
<br/>
<button onclick="clickFunction()">Click</button>

将向您展示您需要了解的内容。通过我所做的测试,blur首先出现。

如果您对此有疑问,为什么不在单击按钮时进行简单检查以确保运行所需的任何内容blur

编辑

根据已编辑的问题,您始终可以为您的blur活动设置一个标志。

function blurFunction() {
    document.myVar = 1;
    //... rest of the function
}

function clickEvent() {
    if(document.myVar = 1) {
        //wait
    } else {
        //do your click event
    }
}

不建议将您的变量放在全局范围内。这只是如何做到这一点的一个例子。

于 2013-03-04T18:34:40.640 回答