因為在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屬性值的目的達到
