使用JavaScript操作表单

使用JavaScript操作表单
关键字: 使用javascript操作表单
      

下面讲述的是使用javascript对表单进行简单基础的操作:

1:获取表单的引用
在开始对表单进行编程前,必须先获取表单<form>的引用.有以下方法可以来完成这一操作。
1)采用典型的DOM树中的定位元素的方法getElementById(),只要传入表单的id即可获得表单的引用:
var vform=document.getElementById(“form1”);

2)还可以用document的forms集合,并通过表单在form集合中的位置或者表单的name特性来进行引用:
var oform=document.forms[0];
var oform=document.forms[“formZ”];

访问表单字段

每个表单字段,不论它是按钮,文本框还是其它内容,均包含在表单的elements集合中.可以用它们的name特性或者它们在集合中的位置来访问不同的字段:
Var oFirstField=oForm.elements[0];
Var oTextBox1=oForm.elements[“textBox1”];
此外还可以通过名字来直接访问字段,如:
Var oTextBox1=oForm.textbox1;
如果名字中有标记,则可以使用方括号标记:
Var oTextBox1=oForm[“text box 1”];

获取和设置文本域的内容
例:求和
function getSum(){
 //获取表单对象
 var theForm=document.forms["myForm2"];
 //计算和,并赋值给第3个文本框
 theForm.elements["sum"].value=eval(theForm.elements["x"].value)+eval(theForm.elements["y"].value);
}
+= 

最常见的访问表单字段的方法

最简单常用的访问表单元素的方法自然是document.getElementById(),举例如下:
<input type="text" name="count"
      value="" />
在JS中取得此元素内容的代码为:
var name=document.getElementById("name").value
这种方法无论表单元素处于那个表单中甚至是不在表单中都能凑效,一般情况下是我们用JS访问表单元素的首选.
鉴于document.getElementById比较长,你可以用如下函数代替它:
function $(id){
     return document.getElementById(id);
}
把这个函数放在共有JS库中,在jsp页面通过如下方法引用它:
<head>
<title>"記賬系统"添加资源页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="web/js/check.js" type="text/javascript"></script>
<link rel="stylesheet" rev="stylesheet" href="web/css/style.css"
 type="text/css" />
</head>
此后你就可以直接使用$访问表单元素中的内容:
var name=$("name").value;

获取表单值并将值付给数组
var list=document.getElementsByTagName("input");

var strData="";
//对表单中所有的input进行遍历
for(var i=0;i<list.length && list[i];i++)
{
      //判断是否为文本框
      if(list[i].type=="text") 
      {
          strData +=list[i].value;
          alert(strData);
      }
}

表单字段的共性

以下是所有表单字段(除了隐藏字段)
Disabled可以用来获取或设置表单控件是否被禁用.
Form特性用来指向字段所在的表单.
Blur()方法使表单字段失去焦点.
Focus()方法使表单字段获得焦点.
当字段失去焦点是,发生blur事件,执行onblur事件处理程序.
当字段获取焦点时,发生focus事件,执行onfocus事件处理函数.

当页面载入时将焦点放在第一个字段

在body代码中如此书写:
<body οnlοad=“focusOnFirstElm()”>
JS函数如下书写:
Fucntion focusOnFirstElm(){
     document.forms[0].elements[0].focus();
}
如果第一个字段不是隐藏字段此方法就是凑效的,如果是的话把elements的下标改成非隐藏字段的下标即可.

控制表单只被提交一次

由于Web的响应问题,用户有可能会点击多次提交按钮从而创建重复数据或是导致错误,我们可以使用JS对提交按钮进行设置以让表单只被提交一次。
<input type=“submit” value=“提交” οnclick=“this.disabled=true;this.form.submit()”/>
这里在点击提交按钮时执行了两句JS代码,一次是this.disabled=true;这是让提交按钮被禁用;一次是this.form.submit()这是提交这个按钮所在的表单。

检查用户在表单元素中的按键

为控件添加 onkeydown事件处理,然后在函数查看keyCode,就能知道用户的按键,代码如下:
<input type="text" name="test"
value="" οnkeydοwn="testkey(this,event)"/>
JS代码如下:
function testkey(obj,event){
     alert(event.keyCode);
}

 

 

2:

node.innerHTML+="<div style='text-align:left;'><input id='checkbox"+i+"' type='checkbox'name='"+filelist[i]+"'/><a οnclick='frm_fileupload.downloadFileFromDB(/""+filremote+"/",/""+downloadclassname+"/");' href='#'>"+shortname+"</a></div>";

 

访问表单字段

每个表单字段,不论它是按钮,文本框还是其它内容,均包含在表单的elements集合中.可以用它们的name特性或者它们在集合中的位置来访问不同的字段:
Var oFirstField=oForm.elements[0];
Var oTextBox1=oForm.elements[“textBox1”];
此外还可以通过名字来直接访问字段,如:
Var oTextBox1=oForm.textbox1;
如果名字中有标记,则可以使用方括号标记:
Var oTextBox1=oForm[“text box 1”];

获取和设置文本域的内容
例:求和
function getSum(){
 //获取表单对象
 var theForm=document.forms["myForm2"];
 //计算和,并赋值给第3个文本框
 theForm.elements["sum"].value=eval(theForm.elements["x"].value)+eval(theForm.elements["y"].value);
}
<input maxlength="2147483647" name="x" size="20" type="text">+<input maxlength="2147483647" name="y" size="20" type="text">= <input maxlength="2147483647" name="sum" readonly="65535" size="20" type="text"> <input maxlength="2147483647" size="20" type="button" value="求和">

最常见的访问表单字段的方法

最简单常用的访问表单元素的方法自然是document.getElementById(),举例如下:
<input type="text" name="count"
      value="" />
在JS中取得此元素内容的代码为:
var name=document.getElementById("name").value
这种方法无论表单元素处于那个表单中甚至是不在表单中都能凑效,一般情况下是我们用JS访问表单元素的首选.
鉴于document.getElementById比较长,你可以用如下函数代替它:
function $(id){
     return document.getElementById(id);
}
把这个函数放在共有JS库中,在jsp页面通过如下方法引用它:
<head>
<title>"記賬系统"添加资源页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="web/js/check.js" type="text/javascript"></script>
<link rel="stylesheet" rev="stylesheet" href="web/css/style.css"
 type="text/css" />
</head>
此后你就可以直接使用$访问表单元素中的内容:
var name=$("name").value; 

获取表单值并将值付给数组
var list=document.getElementsByTagName("input");

var strData="";
//对表单中所有的input进行遍历
for(var i=0;i<list.length && list[i];i++)
{
      //判断是否为文本框
      if(list[i].type=="text")  
      {
          strData +=list[i].value;
          alert(strData);
      }
}

表单字段的共性

以下是所有表单字段(除了隐藏字段)
Disabled可以用来获取或设置表单控件是否被禁用.
Form特性用来指向字段所在的表单.
Blur()方法使表单字段失去焦点.
Focus()方法使表单字段获得焦点.
当字段失去焦点是,发生blur事件,执行onblur事件处理程序.
当字段获取焦点时,发生focus事件,执行onfocus事件处理函数.

当页面载入时将焦点放在第一个字段

在body代码中如此书写:
<body οnlοad=“focusOnFirstElm()”>
JS函数如下书写:
Fucntion focusOnFirstElm(){
     document.forms[0].elements[0].focus();
}
如果第一个字段不是隐藏字段此方法就是凑效的,如果是的话把elements的下标改成非隐藏字段的下标即可.

控制表单只被提交一次

由于Web的响应问题,用户有可能会点击多次提交按钮从而创建重复数据或是导致错误,我们可以使用JS对提交按钮进行设置以让表单只被提交一次。
<input type=“submit” value=“提交” οnclick=“this.disabled=true;this.form.submit()”/>
这里在点击提交按钮时执行了两句JS代码,一次是this.disabled=true;这是让提交按钮被禁用;一次是this.form.submit()这是提交这个按钮所在的表单。

检查用户在表单元素中的按键

为控件添加 onkeydown事件处理,然后在函数查看keyCode,就能知道用户的按键,代码如下:
<input type="text" name="test"
value="" οnkeydοwn="testkey(this,event)"/>
JS代码如下:
function testkey(obj,event){
     alert(event.keyCode);
}

 

3:

JS操作SELECT表单大全,赋默认值,取值,增,删等

1var selectId=document.getElemengById('selectId');


清空select的项

1selectId.options.length = 0;


如果留下第一行的话就是

1selectId.options.length = 1;


向select选项中 加入一个Option

1var varOption = new Option(objOptionText,objOptionValue);
2selectId.options[selectId.options.length] = varOption;
3//或selectId.options.add(varOption);


从select选项中 删除一个Option

1for(var i=0;i<selectId.options.length;i++)
2{
3    if(selectId.options[i].value == objOptionValue)
4    {
5        selectId.options.remove(i);
6        break;
7    }
8}


设置select中text=”paraText”的第一个Option为选中

1for(var i=0;i<selectId.options.length;i++)
2{
3    if(selectId.options[i].text == objOptionText)
4    {
5        selectId.options[i].selected = true;
6        isExit = true;
7        break;
8    }
9}


设置select中value=”paraValue”的Option为选中

1selectId.value = objOptionValue;


得到select的当前选中项的value

1var currSelectValue = selectId.value;


得到select的当前选中项的text

1var currSelectText = selectId.options[selectId.selectedIndex].text;


得到select的当前选中项的Index

1var currSelectIndex = selectId.selectedIndex;


4. 当表单提交或重置时向客户端进行确认操作

  1. linenum
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <script type="text/javascript">
  4. //<![CDATA[
  5.     function fCfm(msg){
  6.         if(confirm(msg))return true;
  7.         return false;
  8.     } // shawl.qiu script
  9. //]]>
  10. </script>
  11. <form name="form1" id="form1" method="get" action=""
  12.     οnsubmit="return fCfm('现在提交数据吗?');"
  13.      οnreset="return fCfm('现在重置表单域所有内容吗?');" >
  14.     
  15.   <input name="textfield" type="text" value="tbx default value" />
  16.   <br />
  17.   <textarea name="textarea">txa default value</textarea>
  18.   <br />
  19.   <input type="submit" name="Submit" value="Submit" />
  20.   <input type="reset" name="Reset" value="Reset" />
  21. </form><br />
  22. <a href="?">back</a>


5. 列出表单域中所有元素及其重要属性

  1. linenum
  2. <script type="text/javascript"> 
  3. //<![CDATA[ 
  4.     function fListFmEle(obj){ 
  5.         try{ w.close(); } catch(e){} 
  6.          
  7.         w=open('', 'popup', 'width=500, height=500, left=200, top=100, scrollbars') 
  8.         w.document.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'); 
  9.   
  10.         for(var i=0; i<obj.length; i++){ 
  11.             w.document.write('obj name: ',obj[i].name.fontcolor('red'), 
  12.             '<br/>obj type: ',obj[i].type.fontcolor('red'), 
  13.             '<br/>obj.value: ', obj[i].value.fontcolor('blue'), 
  14.             '<p/>'); 
  15.         } 
  16.          
  17.         w.document.οnclick=function(){ w.close(); } 
  18.         w.focus(); 
  19.     } // shawl.qiu script 
  20. //]]> 
  21. </script> 
  22. <a href="#" οnclick="fListFmEle(document.fm);">list form elements</a><p/> 
  23. <form name="fm" id="fm" method="post" action=""> 
  24.       <input name="textfield" type="text" value="tbx value" /><br /> 
  25.     <input type="radio" name="RadioGroup1" value="radio" />Radio<br /> 
  26.     <input type="radio" name="RadioGroup1" value="radio" />Radio<br /> 
  27.     <input name="cbx" type="checkbox" id="cbx" value="checkbox" /> 
  28.     <input name="cbx1" type="checkbox" id="cbx1" value="checkbox" /> 
  29.     <input name="cbx2" type="checkbox" id="cbx2" value="checkbox" /><br /> 
  30.     <select name="select"> 
  31.       <option value="v">opt</option> 
  32.       <option value="v1">opt1</option> 
  33.     </select><br /> 
  34.     <select name="sle1" size="2" multiple id="sle1"> 
  35.       <option value="v">sle</option> 
  36.       <option value="v1">sle1</option> 
  37.       </select><br /> 
  38.     <textarea name="textarea">txa value</textarea><br /> 
  39.     <input type="submit" value="Submit" /> 
  40.     <input type="reset" value="Reset" /> 
  41. </form>

6:js操作select控件的几种方法发布:dxy 字体:[增加 减小] 类型:转载

几种js操作select控件的方法,这里基本是整理的比较全了,另外脚本之家特给大家准备了一些相关的文章。让你更深入的了解javascript下select的操作。
-
-
1判断select选项中 是否存在Value="paraValue"的Item
2向select选项中 加入一个Item
3从select选项中 删除一个Item
4删除select中选中的项
5修改select选项中 value="paraValue"的text为"paraText"
6设置select中text="paraText"的第一个Item为选中
7设置select中value="paraValue"的Item为选中
8得到select的当前选中项的value
9得到select的当前选中项的text
10得到select的当前选中项的Index
11清空select的项

======================================================================

js 代码
// 1.判断select选项中 是否存在Value="paraValue"的Item
function jsSelectIsExitItem(objSelect, objItemValue) {
var isExit = false;
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
isExit = true;
break;
}
}
return isExit;
}

// 2.向select选项中 加入一个Item
function jsAddItemToSelect(objSelect, objItemText, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
alert("该Item的Value值已经存在");
} else {
var varItem = new Option(objItemText, objItemValue);
objSelect.options.add(varItem);
alert("成功加入");
}
}

// 3.从select选项中 删除一个Item
function jsRemoveItemFromSelect(objSelect, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
objSelect.options.remove(i);
break;
}
}
alert("成功删除");
} else {
alert("该select中 不存在该项");
}
}


// 4.删除select中选中的项
function jsRemoveSelectedItemFromSelect(objSelect) {
var length = objSelect.options.length - 1;
for(var i = length; i >= 0; i--){
if(objSelect[i].selected == true){
objSelect.options[i] = null;
}
}
}

// 5.修改select选项中 value="paraValue"的text为"paraText"
function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
objSelect.options[i].text = objItemText;
break;
}
}
alert("成功修改");
} else {
alert("该select中 不存在该项");
}
}

// 6.设置select中text="paraText"的第一个Item为选中
function jsSelectItemByValue(objSelect, objItemText) {
//判断是否存在
var isExit = false;
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].text == objItemText) {
objSelect.options[i].selected = true;
isExit = true;
break;
}
}
//Show出结果
if (isExit) {
alert("成功选中");
} else {
alert("该select中 不存在该项");
}
}

// 7.设置select中value="paraValue"的Item为选中
function check(){
var c = document.all.objSelect;
for (var i=0;i<c.options.length ;i++ ){
if (c.options(i).value==paraValue){
c.selectedIndex =i;
}
}
}


// 8.得到select的当前选中项的value
var currSelectValue = document.all.objSelect.value;

// 9.得到select的当前选中项的text
var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text;

// 10.得到select的当前选中项的Index
var currSelectIndex = document.all.objSelect.selectedIndex;

// 11.清空select的项
document.all.objSelect.options.length = 0;
详细出处参考:http://www.jb51.net/article/23747.htm

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值