1

我的 html 页面上有一个事件监听器,因此当一个组件的值发生变化时,另一个组件将成为必需的。但这仅在您更改组件的值、保存页面并重新加载时才有效

有没有办法做到这一点而不必保存和重新加载整个页面?

@EventListener(targets="licensingStatus", events="onchange")
public void onLicenseStatusChange(IRequestCycle cycle){
....
}

编辑:

功能可以转吗

<input jwcid="licensingApprovalDate@CustomDatePicker"/>

进入这个

<input jwcid="licensingApprovalDate@CustomDatePicker" validators="validators:maxDateToday"/>
4

4 回答 4

1

如果组件需要动态生成:

最简单的实现是使用AJAX. 您可以为页面上的任何组件设置一个侦听器,当发生更改时,进行AJAX调用并让另一个组件出现。

别的:

如果组件已经存在并且最初是不可见的并且只需要使其可见,那么您可以使用此代码

document.getElementById('other-component').style.visibility='visible'; 

在你的听众中。

编辑:

如果您只是希望新字段是强制性的,您可以在 javascript 中为它创建一个检查,以便当您输入提交按钮或其他任何内容时,检查该字段是否为空,如果为空则发出一条消息给用户。像这样的东西:

mystring=document.getElementById('other-component').value; 
if(!mystring.match(/\S/)){
alert ('Empty value is not allowed');
return false;
}else{
 alert ("correct input");
 return true;
}
于 2012-08-23T13:50:54.973 回答
0

您应该使用 Ajax 来实现它。

于 2012-08-23T13:49:35.770 回答
0

阿贾克斯。可能值得看看像 jQuery 这样的框架。

于 2012-08-23T13:50:45.637 回答
0

绝对在这里使用Javascript。返回数据时,您可以使用AJAX并在单个元素上使用 getElementById 进行更新。

jQuery让这变得容易多了。

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() { 
  $("#myDiv").html("New data loaded");
  myGlobalMandatoryField = true;
});

myGlobalMandatoryField可以在另一个函数中使用,以确保在字段中输入值。

于 2012-08-23T13:54:03.980 回答