因为在jsf中使用控件标签 和html中使用的略有不同,所以在jsf用使用js不是很方便!
但是jsf网页代码在客服端显示出来的代码还是纯html ,jsp ,js代码。(在客服端浏览器右键“查看源代码”即可)
<webuijsf:textField onChange="validateEmail();" binding="#{UserRegisteration.textField2_Email}" id="textField2_Email" required="false" style=" position: relative z-index: 501"/>
最终的js获取email的值的代码;
function validateEmail(){ var text = document.forms['form1'].elements[1].value; alert(text); }
本想通过js获取jsf中textfield 控件的value值,再查询数据库,用来验证用户名是否可用。
一开始觉得有点不可能。因为jsf中textfield控件的值是通过textfield的text属性来设定的。而js中是通过value来获取的。有点失望。
后来在刘成同学的引导下,通过浏览器看到了网页的源代码:1.只有一个form 对象。名为“form1”
2.第一个input 的id为form1:textField2_Email(说明下,这个 textField2_Email 是jsf中输入email的一个textfield控件的id);但是在js中通过如下可以得到DOM对象;
var inputEmail = document.getElementById(form1:textField2_Email); alert(inputEmail); alert(inputEmail.vaue);
分别 输出如下:[object HTMLElement] ;undefined
本来想通过这段代码得到id 为textField2_Email的对象及其value;
不知道这个object指的是什么。。郁闷很长一段时间;
var text = document.forms['form1'].elements[0]; alert(text);
发现客服端只有一个form1 ;所以想到用上面的这段代码试了下,输出如下:
[object HTMLInputElement]
看到一点希望,至少得到了input对象了。
var text = document.forms['form1'].elements[0].value; alert(text);
这样就输出你刚才输入的值,到此,在jsf中通过js得到jsf中控件的text属性值的目的达到