js select总结

1.       select操作方法

1.判断select选项中是否存在Value="paraValue"的Item
2.向select选项中 加入一个Item
3.从select选项中 删除一个Item
4.修改select选项中 value="paraValue"的text为"paraText"
5.设置select中text="paraText"的第一个Item为选中
6.设置select中value="paraValue"的Item为选中
7.得到select的当前选中项的value
8.得到select的当前选中项的text
9.得到select的当前选中项的Index
10.清空select的项
-------------------------------------------
//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[objSelect.options.length] = varItem;
        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选项中 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中 不存在该项");
    }   
}
       
//5.设置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中 不存在该项");
    }   
}

//6.设置select中value="paraValue"的Item为选中
//document.all.objSelect.value = objItemValue;

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

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

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

//10.清空select的项
// document.all.objSelect.options.length = 0;

2.       使select中某一项被选中

<HTML>
<HEAD>
<TITLE>SelectItem</TITLE>
<script type="text/javascript">
function selectItem(selectIndex){
//获取select元素对象
var tagSelect = document.getElementByIdx("select1");
//方式一:使用select元素的selectedIndex属性,selectedIndex是设置或获取选中选项(<option>)位于 select 对象中的位置
tagSelect.selectedIndex = selectIndex;

/*方式二:使用select元素的options集合,options代表select元素中的所有<option>子标记,
如果需要访问options集合中的第二个option时,可以通过options[1]的方式访问;
还有tagSelect.options.length可以返回options的个数 */
//tagSelect.options[selectIndex].selected = true;
}
</script>
</HEAD>

<BODY>
<form name="form1">
<select name="select1">
<option id="s1" value="s1">选项1</option>
<option id="s2" value="s2">选项2</option>
<option id="s3" value="s3">选项3</option>
</select>
<input type=button value="选择第二个" οnclick="selectItem(1)">
</form>

</BODY>
</HTML>

3.       获取多行select中被选中的项的文本

使用下面js函数    
  <script>  
  function   gettext()  
  {  
  var   text="";  
  var   obj=document.all.aa;  
  for(var   i=0;i<obj.length;i++)  
  {  
  if   (obj.options[i].selected)  
  text=text   +   obj.options[i].text   +   ",";  
  }  
   
  text=text.substring(0,text.length-1);  
  alert   (text);  
  }  
  </script>  
  <select   id   =   aa   name   =   aa   multiple>  
      <option   value   =   1>a</option>  
      <option   value   =   2>b</option>  
      <option   value   =   3>c</option>  
      <option   value   =   4>d</option>  
      <option   value   =   5>e</option>  
  </select>  
  <input   type   =   button   id   =   ok   name   =   ok   value   =   "确定"   οnclick="gettext()"></input>

4.       通过SelectInput赋值的几种方法

以下是我在实际制作表单中的一些总结,虽然都是小CASE,但还是比较实用的,注意灵活运用!

1.将Select的值直接赋给Input

<form name="formname">
<input name="inputname" type="text" value="" size="20" />
<select name="selectname" οnchange="document.formname.inputname.value=this.value">
<option value="value0">value0</option>
<option value="value1">value1</option>
<option value="value2">value3</option>
</select>
</form>

2.将Select的值赋给两个Input

因为Select的一个Option值只有一个,因此在生成Select时需要用JS进行分割一下
<script type="text/javascript">
function Change2Input (objSelect,objInput1,objInput2){
if (!objInput1) return;
if (!objInput2) return;
var str = objSelect.value;
var arr = str.split(",");
objInput1.value=arr[0]
objInput2.value=arr[1]
}
</script>
<form name="formname">
<input name="input1name" type="text" value="" size="20" />
<input name="input2name" type="text" value="" size="20" />
<select name="selectname" οnchange="javascript:Change2Input(this,document.formname.input1name,document.formname.input2name)">
<option value="站长吧,http://master8.net">站长吧</option>
<option value="phpcms,http://phpcms.cn">phpcms</option>
</select>
</form>
拿上例来说,就可以把网站名和URL分别赋值给两个Input

3.将Select的值用逗号分割赋给Input

最简单的不做任何处理的是:
<form name="formname">
<input name="inputname" type="text" value="" size="20" />
<select name="selectname" οnchange="document.formname.inputname.focus(); document.formname.inputname.value = document.formname.inputname.value + this.options[this.selectedIndex].value + ",";">
<option value="value0">value0</option>
<option value="value1">value1</option>
<option value="value2">value3</option>
</select>
</form>
以下是经过处理的,规则是同一Value只能出现一次,且结尾不要加逗号
<script type="text/javascript">
function ChangeInput (objSelect,objInput){
if (!objInput) return;
var str = objInput.value;
var arr = str.split(",");
for (var i=0; i<arr.length; i++){
     if(objSelect.value==arr[i])return;
}
        if(objInput.value=='' || objInput.value==0 || objSelect.value==0){
              objInput.value=objSelect.value
        }else{
              objInput.value+=','+objSelect.value
        }
}
</script>

<form name="formname">
<input name="inputname" type="text" value="" size="20" />
<select name="selectname" οnchange="javascript:ChangeInput(this,document.formname.inputname)">
<option value="value0">value0</option>
<option value="value1">value1</option>
<option value="value2">value3</option>
</select>
</form>

5.      通过id号获得表单元素

function getElementById(){

document.getElementByIdx("queryScript").src="<%=request.getContextPath()%>/webcontroller?functionId=1002;

 

var td = document.getElementByIdx("menu1");

       td.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;国保支队";

}

   

6.       响应回车事件

οnkeydοwn="if(event.keyCode==13)sqlQuery(2)"

 

屏蔽form默认的onkeyDown事件

方法1:<Input ….οnkeydοwn="if(event.keyCode==13)event.keyCode=9">

方法2:<form name="myform"  onKeydown="if(event.keyCode==13){return  false;}">

7.       屏幕滚动效果

     <MARQUEE  οnmοuseοver=this.stop() οnmοuseοut=this.start() scrollAmount=3 scrollDelay=0 direction=up width="90%" height=100>

<table width="100%"  border="0" cellspacing="4" cellpadding="0">

<tr>

                  <td>·1</td>

                  <td>·2</td>

</tr>

</table>

</MARQUEE> 

8.       当前页是一个弹出窗口,想刷新父页面

window.opener.location.reload()

9.        弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页(如果父窗口在此之前如果有过提交数据的动作,则会出现这么个讨厌的对话筐“不重新发送信息,则无法刷新网页”)

window.opener.location.href=window.opener.location.href
去刷新(其实是重定位了一下)父窗口

window.opener.location.reload();

10.    让网页自动更新,使用response的Refresh标头

例1:每隔3分钟,重新加载此网页

Response.setIntHeader(“Refresh”,180);

例2:过10秒钟后,调用浏览器转到http://Server/Path的网页时

Response.setHeader(“Refresh”,”10;URL=http://Server/Path”);

     Html语法中也有类似的功能:

     <meta http-equiv=”refresh” content=” 10;URL=http://Server/Path”>

 

11.     document.all获得文档中所有组件

用法:<IMG src="images/aa.jpg" name="ntimg" style="border:1px #ff0000 solid"  >

<a href=# onClick="document.all.ntimg.src = 'images/bb.JPG' ">yyyyyy换图yyyyyy</a>

12.     表单输入限制(小结)

只能输入汉字:
<input οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))">

只能输入数字:
<input οnkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">

只能输入英文和数字:
<input οnkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">

 

function bufferfx(){

     if(!isInt(document.myform.bufferR.value)){//判断不是整数

         alert("请输入一个整数!");

         return false;

        }

 

       //判断输入的字符串是否为数字

       function isInt(strInt)

        {

          var num;

          num = parseInt(strInt);

          if (isNaN(num))

          {

              return false;

         }

         return true;

     }

 

 

输入框最大输入长度和特殊字符控制

<input type=text name=txt size="15"  οnkeypress="forbid()" maxLength="10">  

  <script language=javascript>  

        function forbid(){

           if ((event.keyCode > 32 && event.keyCode < 48)            

             || (event.keyCode > 57 && event.keyCode < 65)

             || (event.keyCode > 90 && event.keyCode < 97)

             || (event.keyCode > 122 && event.keyCode < 127)

             ){

              //alert("禁止输入特殊字符!");

                 event.returnValue = false;

                }

        }

</script>

 

13.    当您观赏一个拥有数个frame的网页时,若您想link至internet其他网页,这些frame 并不会消失。那么frame应如何消除呢?

方法:在<a href..>标记中加入target=”_top”就可解决,如:

<a href=”a.html” target=”_top”>pp</a>

若想让整个网页中的link都有此效果,可以在<head>…</head>标记中加入<base  target=”_top”>,这样每个link被按下时frames都会被消除。

 

14.    界面跳转

<jsp:forward page=”toPage.jsp”/>

 

15.    重定向

方法一:对于HTML语言

以下是代码片段:
<html>
<head>
<meta http-equiv="Refresh" content=2;url="http://www.citk.net">
</head>
<body>
Loading...
</body>
</html>

对于HTML语言可以用如上方法,

以上含义为:则会在2秒之后重定向到 http://www.citk.net;如果 http://www.citk.net为本身,则每2秒自动刷新1次;如果 content=0,则立即重定向。

 

方法二:js实现

以下是代码片段:
<script language="javascript">
url = window.location.href;
url = url.replace("http://www.citk.net","http://你的域名.com");//
把网址代换
window.navigate(url);
</script>

 方法三:response实现

Response.sendRedirect(“http://www.citk.net”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值