天天看點

JS 獲得 輸入框 和 radio 的值

              JS 獲得 輸入框 和 radio 的值

這幾天遇到很蛋疼的事情。

有一個連結,要用到輸入框輸入的資料,和 radio 選中的值,作為參數。

但是,一直不知道怎麼弄這個,查了一些資料,算是解決了這些問題。

先說說獲得輸入框的值。這裡,我是用了struts 2 的标簽

<struts:textfield name="username" label="賬号" /〉

這樣子要傳使用者輸入的資料,結果發現,個人推薦用JS的方法。

先給它弄個id号,然後在JS裡面調用document.getElementById

("username");

<struts:textfield name="username" label="賬号"  id="username"/>

接下去是一個最蛋疼的東西 獲得radio裡面的資料

剛開始,我是用這種方法寫的,

<struts:radio  list="#{'student':'學生','teacher':'教

師','manager':'管理者'}" name="type" id="type" ></struts:radio>

但是,發現一直不能在JS裡面獲得資料,于是,我隻能投機取巧了。改用

了下面的寫法

<input type="radio" name="type" value="student" id="student"/>學

<input type="radio" name="type" value="teacher" id="teacher"/>教

<input type="radio" name="type" value="manager" id="manager"/>管

理員

此處切記,name屬性要和你在Action裡面的屬性type相同。就是Action裡

面要有:

private String type;

這個屬性

最後,就是JS的函數,按照id來取得資料。

下面是JS的函數代碼;

<script type="text/javascript">

 function forgetpassword()

 {

   var a = document.getElementById("username").value;

   if(a=="" || a==null)

   {

     alert("使用者名不能為空");

   }

   else

  {

    var b = document.getElementById("student");

    if(b.checked)

    {

       window.location.href="ForgetPassword!execute.action?username=" target="_blank" rel="external nofollow" + a + "&type=" + b.value;

    }

    else

    {

      b = document.getElementById("teacher");

      if(b.checked)

      {

        window.location.href="ForgetPassword!

execute.action?username=" + a + "&type=" + b.value;

      }

      else

      {

        b = document.getElementById("manager");

        if(b.checked)

        {

         window.location.href="ForgetPassword!

execute.action?username=" + a + "&type=" + b.value;

        }

        else

        {

          alert("請選擇使用者類型");

        }

      }

    }

  }

 }

</script>

今天起床的時候,CSDN的程式員給我介紹了另外一種方法,也是可以的,還是使用Struts 2 的标簽的方法。(CSDN就是強大啊。)試驗過,很好,就采用這種方法了。

還是這一招:

<struts:radio  list="#{'student':'學生','teacher':'教

師','manager':'管理者'}" name="type" id="type" ></struts:radio>

然後,用下面這個語句,獲得數組。

var b = document.getElementsByName("type"); (注意:這裡是getElementsByName,Element後面有個s的,如果沒有s,好像就一直傳回第一個radio的值。感覺很像C++ 或 Java 裡面的數組。 )然後再輸入循環,讓這個數組去搞。

下面是JS函數:

<script type="text/javascript">

 function forgetpassword()

 {

   var a = document.getElementByIdx_x("username").value;

   if(a=="" || a==null)

   {

     alert("使用者名不能為空");

   }

   else

   {

      var b = document.getElementsByName("type");

         for(i=0;i<b.length;i++)

         {

           if(b[i].checked)

           {

            break

           }

         };

         if(i==b.length)

         {

           alert("使用者類型不能為空");

         }

         else

         {

          window.location.href="ForgetPassword!getuser.action?username=" target="_blank" rel="external nofollow" + a + "&type=" + b[i].value;

         }

     }

   }

</script>