熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JavaScript訪問JSF組件的方法

2022-06-13   來源: JSP教程 

  先看下面的 JSF 頁面

  <%@ page language=java pageEncoding=UTF%>
<%@ taglib uri= prefix=h%>
<%@ taglib uri= prefix=f%>
<html>
  <head>
    <title>My JSF loginjsp starting page</title>
    <script type=text/javascript>
    function isEmpty() {
      var username = documentgetElementById(formLogin:txtUsername)value;
      var password = documentgetElementById(formLogin:txtPassword)value;
      if(username == ) {
        alert(給老子輸用戶名!);
        documentgetElementById(formLogin:txtUsername)focus();
        return false;
      }
      if(password == ) {
        alert(不輸密碼你登錄個鏟鏟!);
        documentgetElementById(formLogin:txtPassword)focus();
        return false;
      }
    }
    </script>
  </head>
  <body>
    <center>
      <f:view>
        <h:form id=formLogin>
          <div id=input>
            <h:outputLabel value=用戶名 />
            <h:inputText value=#{LoginManagerusername} id=txtUsername
              styleClass=formText />
            <br>
            <h:outputLabel value=密碼 />
            <h:inputSecret value=#{LoginManagerpassword} id=txtPassword
              styleClass=formText />
          </div>
          <div id=submit>
            <h:commandButton value=提交 action=#{LoginManagercheck}
              onclick=return isEmpty(); styleClass=formButton />
            <h:commandButton value=重置 type=button
              onclick=javascript:documentgetElementById(formLogin)reset();
              documentgetElementById(formLogin:txtUsername)focus();
              styleClass=formButton />
          </div>
        </h:form>
      </f:view>
    </center>
  </body>
</html>

  這個頁面使用 JavaScript 來確認登錄時用戶名和密碼是否為空表單名為 formLogin兩個輸入組件名為 txtUsername 和 txtPassword當單擊按鈕時將調用 JavaScript 函數 isEmpty()根據條件判斷顯示對話框或是提交表單

  要注意的是不能在 JavaScript 函數中使用如下類似語法來訪問表單組件
documentformLogintxtUsernamevalue;
而應使用
documentgetElementById(formLogin:txtUsername)value;
或者
documentformsformLogin[formLogin:txtUsername]value;

  這是因為 JSF 解釋上面的 <h:form id=formForm></h:form> 一段時會生成如下代碼

  <form id=formLogin method=post action=/Project_Blog/loginfaces
  enctype=application/xwwwformurlencoded>
  <div id=input>
    <label>用戶名</label>
    <input id=formLogin:txtUsername type=text
      name=formLogin:txtUsername class=formText />
    <br>
    <label>密碼</label>
    <input id=formLogin:txtPassword type=password
      name=formLogin:txtPassword value= class=formText />
  </div>
  <div id=submit>
    <input type=submit name=formLogin:_id value=&#;&#;
      onclick=return isEmpty(); class=formButton />
    <input type=button name=formLogin:_id value=&#;&#;
      onclick=javascript:documentgetElementById(formLogin)reset();
      documentgetElementById(formLogin:txtUsername)focus(); class=formButton />
  </div>
  <input type=hidden name=formLogin value=formLogin />
</form>

  JSF 產生的所有表單控件都有符合 formName:componentName 格式的名稱這裡的 formName 表示控件的表單的名稱而 componentName 表示組件名稱如果沒有指定 id 屬性則 JSF 框架會自動創建標識符就象上面的 HTML 片段中的按鈕一樣因此要訪問上面的用戶名字段必須使用下列方法

  documentgetElementById(formLogin:txtUsername)value;


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19470.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.