PrimeFacesCommandButton和ajax
我使用带有许多选项卡的PrimeFacesCommandButton和ajax,ajax,primefaces,Ajax,Primefaces,我使用带有许多选项卡的tabView组件。在许多表单中,我有表单,它们由primefacescommandButton组件提交 默认情况下,PFcommandButton使用ajax模式,但当我提交表单时,我的页面似乎已完全加载,并且我的tabView组件丢失了其索引视图(索引0已呈现) 请问这是正常行为吗 我想我会留在同一个索引中,因为它是ajax…好的,我的问题是JSvalidateRegisterForm函数。当我移除它时,它会工作,但我需要它 我用它来检查是否可以启动验证表单 funct
tabView
组件。在许多表单中,我有表单
,它们由primefacescommandButton
组件提交
默认情况下,PFcommandButton
使用ajax模式,但当我提交表单时,我的页面似乎已完全加载,并且我的tabView
组件丢失了其索引视图(索引0已呈现)
请问这是正常行为吗
我想我会留在同一个索引中,因为它是ajax…好的,我的问题是JS
validateRegisterForm
函数。当我移除它时,它会工作,但我需要它
我用它来检查是否可以启动验证表单
function validateRegisterForm(){
if($('#j_idt16\\:register_location_choice_2_input').attr('checked')){
if($('#j_idt16\\:register_galaxies_input').val() == 0){
var galaxie = MUST_CHOOSE_GALAXY;
alert(galaxie.charAt(0).toUpperCase() + galaxie.slice(1));
return false;
}
if($('#j_idt16\\:register_solar_systems_input').val() == 0){
var ss = MUST_CHOOSE_SOLAR_SYSTEM;
alert(ss.charAt(0).toUpperCase() + ss.slice(1));
return false;
}
if($('#j_idt16\\:register_positions_input').val() == 0){
var position = MUST_CHOOSE_POSITION;
alert(position.charAt(0).toUpperCase() + position.slice(1));
return false;
}
}
return true;
}
那么,在发送和允许或不允许使用ajax验证表单之前,我如何检查字段值呢
编辑:
好的,我通过在JS函数中启动验证解决了我的问题,将按钮type
传递到按钮notsubmit
并使用remoteCommand
组件:
我的JS功能:
function validateRegisterForm(){
if(...)
validateForm();
}
和我的远程命令
:
<p:remoteCommand name="validateForm" actionListener="#{login.registerAccount()}"/>
看起来有一些命名容器(p:tabView
可能),你最好给它分配一个id
,这样你就可以得到myTab0
,myTab1
等前缀,而不是像j\u idt16
这样的前缀
例如你的标签索引应该保持不变。。。看看你的浏览器控制台有没有js错误。。。这可能会导致整个页面重新加载。。。另外,如果您使用firebug,我不会显示JS错误。我的commandButton代码是这样的:
好的,当我创建新选项卡并用非常基本的表单和PF commandButton填充它时,我保留了正确的索引,因此可能是表单中的嵌套组件在重新加载时强制更改索引。我将检查我的代码问题;)看看这个“?”
if($('#j_idt16\\:register_location_choice_2_input').length > 0){
//some code here
}