在jsf 中使用js 获取jsf中input控件的的value值

因为在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属性值的目的达到

 

你可能感兴趣的:(html,jsp,浏览器,JSF)