html提交按钮-JavaScript 风暴

2023-08-21 0 487 百度已收录

加入我们一起学习,每天进步

本文作者为360七舞团后端开发工程师

概述

在Web开发中,风暴是在浏览器窗口中触发的,并且通常绑定到窗口内的特定部分。 风暴可以绑定到一个元素、一系列元素或整个浏览器窗口。 以下是一些可能发生的风暴:

风暴处理器

每个可用的风暴都有一个风暴处理程序(风暴触发时运行的代码块),有时称为风暴错误。

下面通过一个简单的例子来概述一下storm处理器的概念

例如


<html lang="en">
  
    <meta charset="utf-8" />
    Event Demo
  

  
    
  

  
    const btn = document.querySelector("button");
    function clickBtn() {
      alert("点击了按钮");
    }
    btn.onclick = clickBtn;

  


里面的脚本代码首先使用Document.querySelector()函数获取按钮元素,然后使用btn变量存储按钮,然后定义一个storm处理函数,最后将函数(弹窗函数)形参赋值给“click”事件处理程序参数,窃听“click”这个风暴。 每当在元素上触发风暴时,都会执行风暴处理程序代码块。 也就是说,每次用户单击它时,该代码都会运行。

触发网络风暴的表单内联风暴处理程序

  <button onclick="clickBtn()" >press me

在网络上注册风暴处理程序的最早方法是使用类似于前面所示的风暴处理程序 HTML 属性,该属性值实际上是风暴发生时运行的 JavaScript 代码。 里面的case调用的storm handler在script模块中,但是你也可以直接在属性中插入JavaScript,例如:

  <button onclick="alert('点击了按钮')" >press me

不建议使用等效的 HTML 属性作为 Wave 处理程序属性,因为使用 Wave 处理程序属性虽然看似简单,但很快就会变得难以管理且效率低下。

首先,HTML和JavaScript不应该混合使用,这违反了职责分离的原则,并且会使文档难以解析。 最好的方法是只在一处编写 JavaScript 代码。

尽管在单个文件中,外部风暴处理器也不是一个好主意。 一个按钮看起来不错,如果有一百个按钮怎么办? 您必须向文件添加 100 个属性。 这很快就会成为维护人员的噩梦。 使用 JavaScript,您可以轻松地将风暴处理程序添加到网页中的按钮。 就像下面这样:

const buttons = document.querySelectorAll('button');

for (let i = 0; i < buttons.length; i++) {
  buttons[i].onclick = clickBtn;
}

此外,将编程逻辑与内容分开将使您的网站对搜索引擎更加友好。

Storm 处理器属性

const btn = document.querySelector("button");
function clickBtn() {
  alert("点击了按钮");
}
btn.onclick = clickBtn;

这个onclick是button元素的storm处理程序的一个属性,它和按钮的其他属性(比如btn.textContent)一样,有一个特殊的地方——当你给它一些代码参数时,只要storm触发代码将运行。

有很多风暴处理参数可供选择,例如

有些元素非常通用,几乎可以在任何地方使用(例如 onclick 几乎可以在每个元素上使用),但其他元素只能在特定场景中使用,例如我们只能在 video 元素上使用 onplay。

addEventListener() 和 removeEventListener()

该函数与storm处理器的属性类似,但语法略有不同。

const btn = document.querySelector("button");

btn.addEventListener('click',(ev)=>{
  alert("点击了按钮");
})

这种机制比旧方法带来了一些优势,因为有一个相应的方法:removeEventListener(),它可以消除storm bug。 例如,以下代码将删除前面代码块中的风暴错误:

btn.removeEventListener('click', bgChange);

它在简单、小型项目中可能不是很有用,但是在小型、复杂项目中却非常有用,它可以非常高效地消除未使用的风暴处理器,并且在其他一些场景中也非常有效 - 例如,如果您需要运行不同的环境下有不同的storm处理器,只需适当删除或添加storm处理器即可。

您还可以为同一个错误注册多个处理程序,但无法通过以下方法完成:

myElement.onclick = functionA;
myElement.onclick = functionB;

第二行将覆盖第一行,并且以下方法可以正常工作:

myElement.addEventListener('click', functionA);
myElement.addEventListener('click', functionB);

单击元素时有两个函数起作用:

在这三种机制中,决不应该使用内联处理程序。 内联表单严重违反了 HTML 和 JavaScript 职责分离的原则。

另外两个是相对可以互换的,至少对于简单的用途来说:

addEventListener() 的主要优点是您可以使用removeEventListener() 删除风暴处理程序代码,但如果需要,您可以向同一类型的元素添加多个侦听器。 例如,您可以对一个元素多次调用 addEventListener('click',function(){...}) 。 对于风暴处理程序属性来说这是不可能的,因为任何先前设置的属性都会覆盖之前的属性。

其他风暴概念抑制默认行为

有时,您会遇到希望 Storm 不执行其默认行为的情况。 最常见的例子是 Web 表单,例如自定义注册表单。当您填写详细信息并按下提交按钮时,自然的行为是将数据提交到服务器上的指定页面进行处理,并将浏览器重定向到某个排序“成功消息”页面

当用户没有正确提交数据时,您希望停止向服务器提交信息并给他们一条错误消息,告诉他们做错了什么以及需要采取哪些措施来纠正错误。 某些浏览器支持手动表单数据验证,但由于许多浏览器不支持,因此建议您不要依赖于此并实现自己的验证检查。 我们来看一个简单的反例。

首先,一个简单的 HTML 表单,要求你填写名字(firstname)和姓氏(lastname)


  

    <label for="fname">First name: 
    <input id="fname" type="text">
  

  

    <label for="lname">Last name: 
    <input id="lname" type="text">
  

  

     <input id="submit" type="submit">
  



这里我们使用 onsubmit 事件处理程序来实现一个特别简单的检查,以查看文本数组是否为空。 如果是这样,我们在storm对象上调用preventDefault()函数,该函数会停止表单提交,然后在表单下面的段落中显示一条错误消息,告诉用户出了什么问题:

const form = document.querySelector('form');
const name = document.getElementById('nickName');
const pa = document.getElementById('password');
const para = document.querySelector('p');

form.onsubmit = function(e) {
  if (name.value === '' || pa.value === '') {
    e.preventDefault();
    para.textContent = 'Please enter the user name and password!';
  }
}

事实上,这是一种极其弱的表单验证——例如,如果用户输入空格或数字来提交表单html提交按钮,则表单验证不会阻止用户提交

风暴冒泡和风暴捕获

当具有父元素的元素发生风暴时,现代浏览器会运行两个不同的阶段 - 捕获阶段和冒泡阶段。 在捕获阶段:

在冒泡阶段,情况正好相反:

html提交按钮-JavaScript 风暴

在现代浏览器中,默认情况下所有风处理程序都会在冒泡阶段注册。

标准wave对象有一个名为stopPropagation()的函数可用,当在wave对象上调用该函数时,只会让当前的wave处理程序运行,但wave不会沿着气泡链进一步传播,因此不会有更多的风暴处理程序运行(没有向下冒泡)。

注意:为什么我们要弄清楚捕获和冒泡? 这是因为,在过去糟糕的日子里,浏览器兼容性比现在低得多,Netscape 仅使用风暴捕获,而 Internet Explorer 仅使用风暴冒泡。 当 W3C 决定尝试标准化这种行为并达成共识时,他们最终得到了一个涵盖两种情况(捕获和冒泡)的系统,并在现代浏览器中使用。

默认情况下,所有风暴处理程序都会在冒泡阶段注册,因为这在大多数情况下更有意义。 如果您确实想在捕获阶段注册事件,可以使用 addEventListener() 并将可选的第三个属性设置为 true 来注册处理程序。

泡沫还是捕获?

对于storm代理来说,storm捕获和storm冒泡阶段并没有明显的区别,而且由于storm冒泡的风暴流模型兼容所有主流浏览器,所以从兼容性的角度建议大家使用storm气泡模型。

风暴委员会

冒泡还允许我们使用风暴委托——这一概念依赖于这样一个事实:如果你想在点击大量子元素中的任何一个时运行一段代码,你可以在其父节点上设置风暴错误,并且让子节点上发生的风暴冒泡到父节点,而不是为每个子节点单独设置风暴bug。

一个很好的例子是一系列列表项。 如果想在点击每个列表项时弹出消息,可以在父元素上设置点击bug,这样点击气泡就会从列表项冒泡到其父元素上。

例如

<ul class="animal_list">        
    
  • pig
  •         
        
  • dog
  •         
        
  • cat
  •         
        
  • chicken
  •         
        
  • duck
  •            

    <div class="box">

    单击每个 li 标签时,会输出 li 中的植物名称(innerHTML)。 通常的做法是遍历每个li,然后给每个li绑定一个点击事件:

    html提交按钮-JavaScript 风暴

    var animal_list=document.querySelector(".animal_list");            
    var animals=color_list.getElementsByTagName("li");            
    var box=document.querySelector(".box");            
    for(var n=0;n<colors.length;n++){                
        colors[n].addEventListener("click",function(){                    
            console.log(this.innerHTML)                    
            box.innerHTML="选择的动物为 "+this.innerHTML;                
        })            
    }

    这些方法在li较少的时候可以使用,但是如果有10000个li的话,就会降低性能。

    这时候就需要风暴代理来发挥了。 借助冒泡风暴流的特性,我们也可以通过只绑定一个风暴处理函数来完成:

    function animalChange(e){                
        var e=e||window.event;//兼容性的处理         
        if(e.target.nodeName.toLowerCase()==="li"){                    
            box.innerHTML="选择的动物为 "+e.target.innerHTML;                
        }                            
    }            
    color_list.addEventListener("click",colorChange,false)

    因为有风暴冒泡机制,点击li后会冒泡到ul,然后才会触发ul绑定的点击风暴,然后利用target找到实际发生风暴的元素,得到预期的治疗效果可以达到效果。

    使用storm proxy的好处是,将多个storm处理功能简化为一个,但不同的元素可以采用不同的方式进行处理。 如果在上面的列表元素中添加了其他元素节点(如:a、span等),为什么我们还需要为每个元素重新绑定storms,只不过改变storm代理的风暴处理功能而已。

    参考

    ❤️读完两件事后

    如果你觉得这篇内容对你很有启发,我想邀请你帮我两个小忙:

    点击“在看”,让更多人看到此内容(不管你喜不喜欢,都是流氓行为-_-)

    关注公众号“Vue社区”,每周重点突破一个后端笔试难点。

    在公众号后台回复“电子书”即可免费获得27本精选后台电子书!

    点击观看支持我html提交按钮,转发更好

    html5上下滑动“翻页”实现,这才是真正的翻页

    首先打开网页,右键列表中会出现“查看元素”,然后点击手机按钮调整屏幕长度,查看手机的疗效。

    创建两个 html 文件,一个 test 和一个 test2.html。 打开测试页面,在上面创建一个div,并添加onmousedown和move技能。 打开后,我们发现这是一张棕绿色的页面。

    方法/步骤4:创建翻页效果。 1 页面切换改为上下,滑动效果完成。 END 方法/步骤 5:更快地创建类似的新页面。 1 复制页面,先复制页面,然后粘贴到舞台下。

    你想做一个微出版物,就用编辑电子出版物大师的名字,这个名字很多企业都在用。 使用名称编辑器直接将PDF/图片转换为HTML5陌陌出版物,还可以从0开始逐页编辑制作陌陌出版物,可进行模拟翻页、左右滑动翻页、上下滑动​​翻页转动效果。

    在苹果手机上,向右滑动可以轻松触发返回上一页。 因此,对于交互体验,应谨慎使用向右滑动的操作方式。 设置向下滑动翻页时,引导箭头应向下而不是向上; 如果单击翻页,请使用向上箭头。

    我们能看到的所有网站都是用HTML5来实现的,是具有一定特效的联通营销网页。 简单来说,就是用代码来实现设计师设计的网页图片。 用HTML5制作的作品也会被称为场景应用,有些作品类似于手机PPT。 常见的方式是滑动翻页。

    HTML页面,如何在文本框中输入页脚,然后按确定跳转到相应页面...

    1. 向表单添加一个操作,并在其上放置文件的相对路径。 当点击提交按钮时,自然会跳转到action指定的页面。 或者绑定onclick风暴提交html 翻页,点击跳转window.open或者window.location.href。

    2.在变更风暴中添加代码,满足条件则转移。

    3、打开网站时,如果想直接跳转到en目录访问中文版,需要使用跳转码跳转后才能访问。

    4. 首先,我们创建一个带有按钮的新页面,并在 Dreamweaver 中打开该页面。 Button按钮不能直接添加herf属性,我们可以利用按钮的onClick风暴来实现页面跳转。

    5、新建一个html,命名为Home,放在桌面上。 将主页内容插入到body/body中。 然后新建一个需要跳转的页面,插入内容。

    6、设置divid=ct2条目2/div下容器的id,在a的href中使用#+id实现跳转。 超文本标记语言,标准通用标记语言的一种应用。 “超文本”是指页面可以包含非文本元素,例如图片、链接,甚至音乐和程序。

    求这种翻页风格的DIV+css代码。 。 。

    ahref=你要去的页面地址,看看是不是很方便。 如果你懒得自己写,可以去网站,需要工具html 翻页,但是我没有做过,也没有经验可以跟大家分享。 另外,你也可以去电商网站购买。 成品应该不会太贵。

    我没有读过你的代码,所以我不知道你想回答的是“为什么div会占据浏览器的整行”,因为它抓住了整行。

    正确的; 发件人/spaninputtype=textstyle=宽度:100%; /brahref=#添加 CC /a.../div 等等。 最好写样式表文件来控制点。 建议不要将样式写在行中; 最后一行和第二行是模仿的。

    CSS用于定义网页内容在浏览器上的显示方式。 由于HTML的功能有限,通常不可能随意设计布局和排列文本。 因此,W3C公布了一套HTML扩展标准CSS,在排版和文本样式上对HTML进行了扩展。 功能开启(红色)。

    在css中设置可以改变大小的div滚动项的样式:首先新建一个html文档,进入代码编写界面。 在/head和body上面写上代码,在div上写上你要输入的content/div。 编写内轨css代码。

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悟空资源网 html html提交按钮-JavaScript 风暴 https://www.wkzy.net/game/139868.html

    常见问题

    相关文章

    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务