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>