热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS脚本的基础应用

1、Shang改变span的值,为“Shang0109”functionChangeSpanText(

1、Shang改变span的值,为“Shang0109”

function ChangeSpanText()

{

  var aa=document.getElementById('aa').getElementsByTagName("span")[0].innerText;

  //getElementsByTagName 获取的是数组,此为获取 中所有的
      var xh='0109';
      if(aa.indexOf(aa)!=-1)//先判断是否已包含"0109"
      {
          document.getElementById('aa').getElementsByTagName("span")[0].innerText+="0109";
      }

}

2、CheckBox被选中,则span显示,否则不显示(常用作关联功能的使用)

function CBChecked()

{

   if(document.getElementById('aa').checked==false)//未被选中
        {

            document.getElementById('bb').style.display='none';//不显示
        }
        else
        {

            document.getElementById('bb').style.display='';//显示
        }

}

3、通过一个下拉列表选择种类,一个文本框填写数量,一个“添加”的按钮,并在ListBox中显示明细记录,以供总提交。

页面的html代码:

View Code

class='td_table_1' >选择设备class='td_table_2' >"ddlDevList" runat="server" class="input_select">class='td_table_1' >数量(个)class='td_table_2'>"txtDevNum" runat="server" CssClass="input_150"> "btnAdd" type="button" value="添 加" class="unnamed_anliu" οnclick="return btnAdd_onclick()" />class='td_table_1' >添加明细class='td_table_2' colspan='3'>"ltbDevDetials" runat="server" Width="400px" Height="100px">

参考JS代码:

View Code

//添加入库设备信息到ListBox 中,并初始化数量 空;
function btnAdd_onclick() {var ddl=document.getElementById('ddlDevList');var index=ddl.selectedIndex;var devName=ddl.options[index].text;//设备名称//alert(DevName);//var dd=ddl.options[index].value;//alert(dd);//同上 两个都可以var devNum=document.getElementById('txtDevNum').value;//设备数量if(Number(devNum)==0|| isNaN(devNum)==true)//如果数量为空,或者输入的非数字,则提示错误!(包括为空的情况)
{alert("请正确输入设备数量&#xff01;");document.getElementById(&#39;txtDevNum&#39;).value&#61;"";return;}//将设备名称和数量添加 到 ListBox当中&#xff0c;已存在的设备 则改变其数量 var ltbDevDetials&#61;document.getElementById(&#39;ltbDevDetials&#39;);var ltbCount&#61;ltbDevDetials.options.length;//ListBox 元素的长度if(ltbCount<&#61;0){//添加一个ListBox元素var option&#61;document.createElement("option");option.value&#61;devNum;option.text&#61;devName &#43;" : "&#43;option.value&#43;"";ltbDevDetials.add(option);document.getElementById(&#39;txtDevNum&#39;).value&#61;"";return;}else //遍历ListBox中的每一个元素&#xff0c;并与新添加的元素比较&#xff0c;如果该元素设备名已存在&#xff0c;则两者数量相加&#xff0c;否则添加新元素
{var i,j;for(i&#61;0; i){j&#61;ltbDevDetials.options[i].text.indexOf(devName);//判断是否添加过该编号的设备if(Number(j)&#61;&#61;0)//ListBox已添加该设备
{var num&#61;Number(ltbDevDetials.options[i].value)&#43;Number(devNum);ltbDevDetials.options[i].value&#61;num;//要更新该条设备的数据if(num<&#61;0){ltbDevDetials.remove(i);document.getElementById(&#39;txtDevNum&#39;).value&#61;"";return;}ltbDevDetials.options[i].text&#61;devName&#43;" : "&#43;num&#43;"";document.getElementById(&#39;txtDevNum&#39;).value&#61;"";return;}}}if(ltbDevDetials.options.length&#61;&#61;i)//说明新添加的设备之前没有被添加过
{//添加一个ListBox元素var option&#61;document.createElement("option");option.value&#61;devNum;option.text&#61;devName &#43;" : "&#43;option.value&#43;"";ltbDevDetials.add(option);document.getElementById(&#39;txtDevNum&#39;).value&#61;"";return;}}

另一个思路&#xff0c;解决&#xff1a;将添加部分&#xff08;上图所示&#xff09;更换为一个的框架可以绑定一个新的页面&#xff0c;在新“添加”的时候&#xff0c;可以通过提交Session&#xff0c;再由当前页面从Session中获取后实现“总提交”到数据库中。

4、通过链接跳转到新页面&#xff0c;并控制新页面的属性&#xff0c;使新页面处于屏幕中间&#xff1a;

)">查看明细

绑定了该条记录的id&#xff1b;

 function JumpOutWeb(id)//屏幕中间弹出一个web窗体         {
            var left&#61;Math.round((window.screen.width-600)/2);
            var top&#61;Math.round((window.screen.height-200)/2);
            window.open(&#39;devDetialsLook.aspx?id&#61;&#39;&#43;id, &#39;newwindow&#39;, &#39;height&#61;200, width&#61;600, toolbar&#61;no, menubar&#61;no, scrollbars&#61;no, resizable&#61;no,location&#61;no, status&#61;no,target&#61;_blank&#39;&#43;&#39;,left&#61;&#39;&#43;left&#43;&#39;,top&#61;&#39;&#43;top)
        }

Window.Open跳转新页面命令。新页面属性&#xff08; &#39;devDetialsLook.aspx?id&#61;&#39;&#43;id&#xff1a;是要弹出的页面&#xff0c;也可是html页面&#xff0c;newWindow&#xff1a;新页面的名字&#xff0c;可使用“”代替&#xff0c;

height&#xff1a;页面高度&#xff0c;width&#xff1a;页面宽度&#xff0c;toolbar&#xff1a;是否显示工具栏&#xff0c;menubar&#xff1a;是否显示&#xff1a;菜单栏&#xff0c; scrollbars&#xff1a;是否显示滚动条&#xff0c;resizable&#xff1a;是否允许改变窗口的大小&#xff0c;location&#xff1a;是否显示地址栏&#xff0c;status&#xff1a;是否显示状态栏内的信息&#xff0c;

left&#xff1a;窗口距离屏幕左边的像素&#xff0c;top窗口距离屏幕顶端的像素&#xff09;

window.location.href(&#39;Default.aspx&#39;);//替换当前页面&#xff0c;跳转到指定页面&#xff0c;同时页面也可以添加参数如&#xff1a;“Default.aspx?id&#61;1”

5、判断输入文本框的值是否是数字&#xff0c;不是则提示。

function IfNumber()
        {
            var tel&#61;document.getElementById("txtTel");
            if(isNaN(tel.value)&#61;&#61;true)
            {
                alert("请输入数字&#xff01;");
                tel.focus();//聚焦到该文本框中
                return false;
            }
            return true;
        }

 autocomplete&#61;"off" οnblur&#61;"IfNumber();">

autocomplete&#61;"off"&#xff1a;清除文本框中的痕迹

6、页面中提示窗体的实现
public class Utility
    {
        #region 脚本相关
        ///


        /// 向页面中增加onload事件方法
        /// attachEvent,可以在onload中绑定多个&#xff0c;
        ///

        ///
        ///
        public static void JSAttachEventOnload(string key, string fun)
        {
            Page page &#61; HttpContext.Current.Handler as Page;
            page.ClientScript.RegisterStartupScript(page.GetType(), key, "if

(window.attachEvent)window.attachEvent(\"onload\", function() { " &#43; fun &#43; " });  

else   window.addEventListener(\"load\", function() { " &#43; fun &#43; " }, true);", true);
        }
        #endregion
    }
该方法在.NET中直接调用就可以了
Utility.JSAttachEventOnload("key","fun");//key自定义//fun 可以使方法名&#xff0c;也可以使js代

码如&#xff1a;Utility.JSAttachEventOnload("submitFail","alert(&#39;提交失败&#xff01;&#39;)");
Utility.JSAttachEventOnload("aaa","a()");//a()为js方法


window.attachEvent方法是IE5.0以后提供的方法&#xff0c;该方法可以一个事件&#xff0c;绑定多个处理过程。
Mozilla/Firefox浏览器不支持该方法&#xff0c;而是使用addEventListener,事件也不以“on”开头&#xff0c;并

且addEventListener有三个参数。一般情况下&#xff0c;会同时使用这两个方法&#xff0c;以适用于不同的浏览器


if(document.all){window.attachEvent(&#39;onload&#39;,事件名);}
else{window.addEventListener(&#39;load&#39;,事件名,true/false);}

7、Web关闭当前页面&#xff0c;一般情况用于关闭弹出的web窗体。

 &#xff08;1&#xff09;&#xff1a;ClientScript.RegisterStartupScript(Page.GetType(), "", "");

&#xff08;2&#xff09;&#xff1a;ClientScript.RegisterStartupScript(Page.GetType(), "", "");

将window.opener&#61;null 改为 window.opener.document.location.reload(); 页面在关闭之前会刷新主页面

&#xff08;3&#xff09;&#xff1a;关闭当前页面弹出的提示窗口&#xff0c;并在关闭后刷新页面

Response.write ""

8、删除链接加提示框。

 

 

 

)" >删 除

该链接中的code是Repeater中绑定的code&#xff0c;此处可以自行使用。

9、实现全选的功能

function  SelectAll()//全选         
        {  
            var checkbox &#61; document.getElementsByTagName("input"); 
            if (checkbox[0].checked &#61;&#61; true) { 
                for (var i &#61; 0; i                     checkbox[i].checked &#61; false;
                    if(checkbox[i].type&#61;&#61;"text")
                    {
                        checkbox[i].style.display&#61;&#39;none&#39;;
                    }
                    }
            } 
            else { 
                for (var i &#61; 0; i                 {
                    checkbox[i].checked &#61; true;
                    if(checkbox[i].type&#61;&#61;"text")
                    {
                        checkbox[i].style.display&#61;&#39;&#39;;
                    }
                 }
            } 
        }

10&#xff1a;window.attachEvent

通过监听加载js方法

后台&#xff1a;

 ///


/// 向页面中增加onload事件方法
/// attachEvent,可以在onload中绑定多个       

public static void JSAttachEventOnload(string key, string fun)
{
   //(System.Web.UI)Page

       Page page &#61; HttpContext.Current.Handler as Page;
       page.ClientScript.RegisterStartupScript(page.GetType(), key, "window.attachEvent(&#39;onload&#39;,initHMenus);",true);

}

11、JS获取地址中的参数

function RedirctNewPage()//获取地址当前页面地址栏中的参数&#xff0c;并附加到新地址实现页面跳转         {
            var gid&#61;&#39;&#39;;
            var url&#61;window.location.search;
            if(url.indexOf("?")!&#61;-1)  
            {    
                var str&#61;url.substr(1);    
                strs &#61; str.split("&");    
                for(i&#61;0;i                {      
                    if([strs[i].split("&#61;")[0]]&#61;&#61;&#39;gid&#39;)
                    {
                        gid&#61;unescape(strs[i].split("&#61;")[1]);break;
                     }
                }
            }
            window.location.href&#61;"TerminalExtAdd.aspx?gid&#61;"&#43;gid.toString();
        }

12、获取表中某行某列的值

 var tbID &#61; document.getElementById(&#39;tbID&#39;);

tbID.rows(1).cells(2).innerHTML//获取第二行第三列的值

tbID.deleteRow(1);//删除第二行

13、执行操作点击确定提示框&#xff0c;刷新主页面并关闭当前页面

 

14、js调用后台的事件

在上面的图片中&#xff0c;执行添加&#xff0c;修改&#xff0c;删除等操作后&#xff0c;并对列表页面进行更新&#xff0c;通常情况下&#xff0c;我们执行服务器控件的事件后&#xff0c;页面会被重新加载&#xff0c;如果使用js调用后台的事件&#xff0c;可实现不重新加载页面的效果。


   

后台&#xff1a;

 protected void btnTest_Click(object obj, EventArgs e)
        {
            JSAttachEventOnload("suc","alert(&#39;测试成功&#xff0c;该方法成功执行了后台的事件&#xff01;&#39;);"); 
        }
        public static void JSAttachEventOnload(string key, string fun)
        {
            Page page &#61; HttpContext.Current.Handler as Page;
            page.ClientScript.RegisterStartupScript(page.GetType(), key, "if (window.attachEvent)window.attachEvent(\"onload\", function() { " &#43; fun &#43; " });   else   window.addEventListener(\"load\", function() { " &#43; fun &#43; " }, true);", true);
        }

15、刷新父页面&#xff0c;一般用于子页面执行过操作后&#xff0c;刷新父列表页面&#xff0c;更新数据列表

window.opener.document.location.reload();

window.close();//关闭当前页面

16、同级iframe直接的方法调用

 window.parent.document.frames["frm_top"].ccc();

表示当前iframe调用同级的id为“frm_top”的ccc&#xff08;&#xff09;方法

转:https://www.cnblogs.com/Shang0109/archive/2012/11/27/2777096.html



推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 在JavaScript中,函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效。如果调用函数时传入的参数个数与函数定义时的参数个数不符,会出现不同的情况。函数调用时,传入的参数个数少于函数定义时的参数个数,未传入的参数会被当做undefined处理,可能会导致错误。而传入的参数个数多于函数定义时的参数个数,多余的参数不会被使用,但不会报错。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • python+selenium十:基于原生selenium的二次封装fromseleniumimportwebdriverfromselenium.webdriv ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 通过手机浏览器调用客户端QQ
    php教程|php手册thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释调用QQ客户端php教程-php手册可调用iosandr ... [详细]
  • java.lang.Class.getDeclaredMethod()方法java.lang.Class.getDeclaredMethod()方法用法实例教程-方法返回一个Met ... [详细]
author-avatar
勇敢的无心睡眠888
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有