我是JS的新手,面临使用javascript管理bean的问题。
我试图通过h:inputHidden来做到这一点,但仍然没有正确的行为。
<h:inputHidden id="hidden" value="#{bean.myVariable}" />
和我的剧本
<script type="text/javascript">
function func(){
var varFromBean = document.getElementById('myForm:myVariable').value;
....
}
</script>
我做错了吗? 还有另一种通过运行托管bean方法来定义JS变量的方法吗?
提前致谢!
修改
我需要丰富的日历:日历自定义。我需要允许用户从特定时期选择日期。
<rich:calendar value="#{bean.selectedDate}"
isDayEnabled="disableDays" dayStyleClass="disabledDaysStyle"
firstWeekDay="1"/>
完整的JavaScript是:
<script type="text/javascript">
function disableDays(day){
var curDt = new Date();
if (curDt == undefined){
curDt = day.date.getDate;
}
var period = document.getElementById('form:period').value;
if ((curDt.getTime() + period) > day.date.getTime()) return true;
if (curDt.getTime() < (day.date.getTime())) return true;
else return false;
}
function disabledDaysStyle(day){
if (!disableDays(day)) return 'rich-calendar-boundary-dates';
}
</script>
答案 0 :(得分:1)
要从JS中隐藏的JSF输入获取托管bean值,您可以通过以下方式使用jQuery:
首先使用h:inputText来定义jQuery('classForSearch')中的搜索类。要隐藏输入,它会添加简单的CSS类('inpt-hidden'):
<style>
.inpt-hidden { display: none; }
</style>
<h:inputText value="#{bean.myVariable}" styleClass="inpt-hidden classForSearch" />
之后,您将能够使用jQuery访问它:
<script type="text/javascript">
function func(){
var varFromBean = jQuery('.classForSearch').val();
....
}
</script>
热门设置jQuery,您可以在http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery#Setup
找到答案 1 :(得分:0)
尝试在客户端获取元素值时,不会运行托管bean方法。它只返回页面加载后已存在的值。要运行方法,您可以使用a4j:jsFunction(或其模拟,如果您不使用jsf 1.2)和您需要的参数。