提交表单(ajax调用)后,我试图选择并集中于所选的组件ID。
<script>
var myFunc = function() {
document.getElementById('form:#{bean.componentId}').focus();
document.getElementById('form:#{bean.componentId}').select();
};
$(document).ready(function() {
myFunc();
});
</script>
<h:form id="form">
<h:commandButton action="#{bean.save}" onclick="return myFunc();" ...>
<f:ajax execute="@form" render="@form"/>
</h:commandButton>
...
</h:form>
此解决方案有效,但是存在问题,即<f:ajax>
称为AFTER onclick
,因此在选择组件后呈现了表单,并清除了焦点。
呈现表单后如何调用函数?
更新:( 例如,我尝试过)
onevent="myFunc();"
到f:ajax
=>导致刷新页面onevent="myFunc()"
到f:ajax
=>与onclick
属性相同的行为f:ajax
是onevent
attr。=>还是一样update2 (应如何工作):
该onevent
处理程序实际上将被调用三次,它应该指向一个函数名,而不是函数本身。在发送ajax请求之前一次,在到达ajax响应之后一次,以及成功更新HTML
DOM一次。您应该status
为此检查给定数据参数的属性。
function listener(data) {
var status = data.status; // Can be "begin", "complete" or "success".
switch (status) {
case "begin": // Before the ajax request is sent.
// ...
break;
case "complete": // After the ajax response is arrived.
// ...
break;
case "success": // After update of HTML DOM based on ajax response..
// ...
break;
}
}
因此,在您的特定情况下,您只需添加一个检查,确认状态是否为success
。
function myFunc(data) {
if (data.status == "success") {
var element = document.getElementById('form:#{bean.componentId}');
element.focus();
element.select();
}
}
并且您需要通过函数名称来引用该函数:
<f:ajax ... onevent="myFunc" />
到目前为止,我做到了: 我的Ajax1函数返回ajax对象。我的等待函数看起来像这样: 问题是第二个ajax请求函数(Ajax2)并没有等待等待函数!编辑:我也试过: 什么也没变。从jQuery文档: 在将多个延迟对象传递给jQuery.when的情况下,该方法将从新的“master”返回promise“延迟对象,跟踪已传递的所有延迟的聚合状态。当所有延迟被解决时,该方法将立即解决其主延迟,或者当
问题内容: 我有一个正在构建的自滚动MVC框架,到目前为止,已经设法避免了任何AJAX调用的需要。但是,现在,我想创建一个实时更新提要。 我的问题是,通常将Ajax调用的处理程序存储在MVC中的什么位置?我应该将它们存储在进行呼叫的同一控制器中吗? 例如,如果我的域名www.example.com/browse/blogs(浏览器是控制器,博客是方法)正在对更新后的博客列表进行AJAX调用,则该调
问题内容: 我知道在香草js中,我们可以做到 在ReactJS中调用onClick的两个函数等效于什么? 我知道调用一个函数是这样的: 问题答案: 将两个函数调用包装在另一个函数/方法中。这是该想法的几个变体: 1)分开的方法 或使用ES6类: 2)内联 或等效于ES6:
问题内容: 我要实现的目标 我有一些要展示的作品。所以,我有这些的缩略图。当访客单击缩略图时,我希望打开一个div(称为slickbox)并显示标题,说明和有关所单击作品的滑块。 我已经完成的工作以及如何 从数据库中获取工作数据。这是我的作品清单的一小部分: index.php 如您所见,我有一个ul标签,其中每个作品都包含li标签。每个li标签获取数据库中工作的ID,每个li标签包含h3标签和p
问题内容: 我有这个功能: 我的页面使用最喜欢的按钮加载内容,但是在Ajax调用并生成其他新内容后,单击新内容的按钮时该功能不起作用。有什么不对吗? 问题答案: 那是因为您正在使用动态内容。 您需要将点击调用更改为委托方法,例如 要么
目前,我正在使用一个控制器来获取所有数据,并将其放置在视图类中的foreach语句中。因此,每当加载页面时,它都会执行此函数。为了实现这一点,我使用了如下方法: 控制器类: 查看类别: 但是现在我希望页面加载得更快,因此只有当用户单击该特定的select2语句时,我才希望加载下拉列表。我尝试了以下代码来获取具有选择2功能的select2变量,即通过下拉列表获取输入文本,但都不起作用。它只是在我的页