天天看點

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

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