GVKun编程网logo

HTML5的form(HTML5的form如何关闭自动完成功能?)

26

如果您对HTML5的form感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于HTML5的form的详细内容,我们还将为您解答HTML5的form如何关闭自动完成功能?的相关问

如果您对HTML5的form感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于HTML5的form的详细内容,我们还将为您解答HTML5的form如何关闭自动完成功能?的相关问题,并且为您提供关于asp.net – 如何在WebForms中的form.onSubmit期间调用HTML5 form.checkValidity?、HT for Web基于HTML5的图像操作(二)、HTML5 - 各大浏览器对html5的支持情况、HTML5----大牛对HTML5的思考总结(一)(笔记篇)的有价值信息。

本文目录一览:

HTML5的form(HTML5的form如何关闭自动完成功能?)

HTML5的form(HTML5的form如何关闭自动完成功能?)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <!--
        novalidate:关闭form表单验证
        -->
        <form action="" id="myForm" novalidate>
            <!--需要输入一个网址-->
            <input type="url" name="url">
            <!--表示email地址-->
            <input type="email" name="email">
            <!--输入类型为数值-->
            <input type="number" name="number">
            <!--数值活动条-->
            <input type="range" name="range" value="50" max="100" min="0">
            <!--颜色选择器-->
            <input type="color" name="color">
            <!--时间相关的-->
            <div>
                <input type="date" name="date1">
                <!--UTC标准时间-->
                <input type="datetime" name="date2">
                <!--本地完整时间-->
                <input type="datetime-local" name="date3">
                <!--小时+分钟-->
                <input type="time" name="time">
                <!--精确到月份-->
                <input type="month" name="month">
                <!--精确到周-->
                <input type="week" name="week">
            </div>
            <!--
            placeholder:输入提示文字
            autocomplete:是否保存上次输入的值
            autofocus:光标自动聚焦
            required:是否是必填
            pattern:正则验证
            -->
            <input type="text" placeholder="请输入用户名" autocomplete="on" autofocus required pattern="\d{11}" id="username">
            <!--
            formnovalidate:与novalidate的作用一致,可以自行选择
            -->
            <input type="submit" value="提交" formnovalidate>
        </form>
        <!--可以关联到id=myForm的表单,当myForm提交的同时,这个字段也能够被提交-->
        <input type="text" value="test" form="myForm">
    </div>
</body>
</html>

asp.net – 如何在WebForms中的form.onSubmit期间调用HTML5 form.checkValidity?

asp.net – 如何在WebForms中的form.onSubmit期间调用HTML5 form.checkValidity?

我如何覆盖或扩展标准的WebForms WebForm_OnSubmit javascript函数?

我在ASP.net WebForms网站上使用HTML5输入类型.用户代理(例如Chrome,IE,Firefox)已正确处理数据清理,备用UI等.

通常,当用户点击< input type =“submit”>按钮,User-Agent将暂停提交,并显示UI以向用户指示他们的输入将无效:

WebForms的问题在于它不使用“提交”按钮.相反,一切都可以通过javascript回发来完成,而不是提交表单:

<asp:LinkButton ID="bbOK" Text="Save User" runat="server" OnClick="bbOK_Click"></asp:LinkButton>

当渲染到客户端html时,它变成对Javascript的调用:

WebForm_DoPostBackWithOptions(...)

真正的长形式是Anchor标签:

<a id="Really_Long_Thing_ctl00_bbOK" 
   href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$VistaToolbar$ctl00$bbOK","",true,false,true))'>
   Save User
</a>

这意味着用户代理从不向用户提示输入的元素无效.

即使表单未被“提交”,它仍会触发onsubmit事件.我可以使用以下方法手动触发HTML5表单验证:

isValid = form.checkValidity();

理想情况下,我会在我的ASP.web WebForms站点中挂钩该事件:

的Site.Master

<form runat="server" onsubmit="return CheckFormValidation(this)">

<script type="text/javascript">
   function CheckFormValidation(sender) 
   {
      //Is the html5 form validation method supported?
      if (sender.checkValidity)
         return sender.checkValidity();

      //If the form doesn't support validation,then we just assume true
      return true;
   }
</script>

除了WebForms基础结构删除我的onsubmit方法处理程序,并将其替换为自己的:

<form id="ctl01" onsubmit="javascript:return WebForm_OnSubmit();" action="UserProperties.aspx?userGuid=00112233-5544-4666-7777-8899aabbccdd" method="post">

所以我自己的提交电话被忽略了.看来,深入研究WebForm_OnSubmit会导致ASP.net WebForms验证基础架构陷入困境:

function WebForm_OnSubmit() 
{
   if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) 
      return false;
   return true;
}

调用函数:

var Page_ValidationActive = false;
function ValidatorOnSubmit() 
{
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else 
    {
        return true;
    }
}

哪些调用,哪些调用,哪些检查.

只想要使用WebForms进行HTML5表单验证

问题是WebForms在提交之前有一个巨大的基础设施来检查表单,并通过标准化机制(以及我不使用的整个基础架构)向用户显示错误.它接管表单的onsubmit事件,并且它(不一定)使用< input type =“submit”>进行中.

我该怎么做才能说服ASP.net WebForms网站让User-Agent验证表单?

也可以看看

> HTML5 validation and ASP.net Webforms
> How do I get Client-side validation of ASP.Net page to run?
> Trigger standard HTML5 validation (form) without using submit button?
> MSDN Magazine: Better Web Forms with HTML5 Forms

解决方法

Web表单基础结构删除处理程序,因为您尝试将其直接添加到可视设计环境中的元素上,而Web表单不是以这种方式工作的.

捕获提交处理程序很简单,您只需要创造性地思考一下.

每当您尝试在Web表单环境中处理类似这样的事情时,您必须学会考虑Web表单页面呈现管道之后的解决方案.如果您尝试找到直接在Web表单引擎中工作的解决方案,那么Web表单将每次都获胜.

如果需要,您可以在此处重现我的确切测试用例,或者您可以根据需要选择所需的位并重新使用.

步骤1

在C#中创建一个新的Web表单项目(如果需要,可以在VB中执行,但我将我的示例设置为C#),一旦创建了项目,右键单击应用程序引用,进入NuGet并安装JQuery的.

使用JQuery可以做到这一点,只使用本机方法,但它是星期天,我今天很懒:-)

第2步

在项目中添加一个新的Web表单(使用添加新项目)并调用此“Default.aspx”,在此表单上添加一些文本,一个文本框,一个按钮和一个标签.

您的代码应类似于:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="jsvalidation.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    Please enter your name :
    <asp:TextBox ID="txtName" runat="server" data-jsname="username"></asp:TextBox>
    <asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit"     />
  </div>
  <asp:Label runat="server" ID="lblResult">...</asp:Label>
  </form>

</body>
</html>

然后按F7(或双击按钮)转到表单编辑器后面的代码.

第3步

将按钮处理程序的代码添加到后面的代码中.如果您的处理方式与我完全相同,则代码应与以下内容类似:

using System;

namespace jsvalidation
{
  public partial class Default : System.Web.UI.Page
  {
    protected void Page_Load(object sender,EventArgs e)
    {}

    protected void btnSubmit_Click(object sender,EventArgs e)
    {
      if(Page.IsPostBack)
      {
        lblResult.Text = "Well hello there " + txtName.Text;
      }
    }
  }
}

此时,您可以按F5测试工作,当您按下提交按钮时,在文本框中输入(或不输入)的内容应与下面标签中的消息一起显示.

现在我们已经设置了基本的网络表单,我们只需要拦截表单提交.

第4步

正如我刚才所说,你需要在网络表格框之外思考.

这意味着您需要在页面呈现并发送到浏览器之后运行拦截.

Web表单注入混合的所有JS通常在允许页面输出继续之前执行,这意味着在打开正文标记之前.

为了使代码在它之后运行,您需要将脚本放在html输出的END处,以便它最后运行.

在结束正文标记之前添加以下代码,但在结束表单标记之后添加

<script src="/Scripts/jquery-2.1.1.js"></script>
<script type="text/javascript">

  $(document).ready(function() {

    $('form').submit(function() {

      var uninput = $('input[data-jsname="username"]');
      var username = uninput.val();

      if (username == "")
      {
        alert("Please supply a username!");
        return false;
      }

    });

  });

</script>

你们中间越精明,我会立即注意到我没有调用HTML5验证API,原因是我试图让这个例子变得简单.

我在哪里检查用户名值是重要的部分.

重要的是我执行检查的匿名函数返回true或false. (如果你不返回任何东西,则为True)

如果您返回false,则会阻止回发,从而允许您使用所需的任何JS代码来使用HTML5验证API更改表单域.

我个人的偏好是使用bootstrap(参见我的Bootstrap 2书的免费电子书范围,很快就会发布Bootstrap 3书),你可以在框架中使用特殊的标记和css类,例如“has-errors” “适当地调整颜色.

至于使用JQuery选择组件,这里有两件事你需要注意.

> 1)你不应该在网页表单页面上有多个表单,事实上如果我没记错,你的应用程序将无法编译,如果你这样做,或者最多它肯定会在运行时抛出异常.
> 2)因为你只有一个表格,然后你可以非常安全地做出假设,JQuery中的通用“形式”选择器只会选择你的主要形式(不论其ID,名称,缺乏或大小)并且为它添加​​一个onsubmit处理程序,在web-forms之后总是会附加它.
> 3)因为Web表单可以(并且通常会)修改ID名称,所以通常更容易使用“数据属性”向标记添加自定义位.实际的ASP.NET js端验证本身就是完全相同的技巧,以允许JS代码和.NET代码在同一页面中愉快地共存.有办法告诉.NET如何命名ID,但通常你必须在很多地方设置很多选项,而且很容易错过一个.使用“数据属性”和JQ属性选择器语法是一种更安全,更易于管理的方法来实现相同的功能.

摘要

这不是一项艰巨的任务,但我不得不承认,如果你不在网络形式围绕着你的范围内寻找,那么这不是一个明显的问题.

Web表单专为快速应用程序开发而设计,主要用于桌面win-forms模型的开发人员.虽然现在网页形式仍然存在,但对于新的绿地应用程序,我建议也考虑其他选项,特别是那些建立在新HTML5规范正在努力铺设和正确的基础之上的应用程序.

HT for Web基于HTML5的图像操作(二)

HT for Web基于HTML5的图像操作(二)

上篇介绍了HT for Web采用HTML5 Canvas的getImageData和setImageData函数,通过颜色乘积实现的染色效果,本文将再次介绍另一种更为高效的实现方式,当然要实现的功能效果是完全一样的。这次我们依然基于HTML5技术,但采用Canvas的globalCompositeOperation属性进行各种blending效果:

Screen Shot 2014-11-22 at 9.42.52 PM

各种globalCompositeOperation效果可参考https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing 的说明,我们采用“multiply”和“destination-atop”这两种blending效果,通过以下三个步骤实现:

1、先以染色颜色填充图片大小的矩形区域

2、采用“multiply”进行drawImage的绘制,达到以下效果

Screen Shot 2014-11-22 at 9.50.47 PM

 

3、最后一步采用“destination-atop”的globalCompositeOperation方式,再次drawImage,这次绘制效果将会抠出图片像素区域,剔除非图片部分,最终达到我们所要的染色效果图片:

Screen Shot 2014-11-22 at 9.54.36 PM

所有代码如下

function createColorImage2(image, color) {
		var width = image.width;
		var height = image.height;                
		var canvas = document.createElement(''canvas'');
		var context = canvas.getContext( "2d" );
		canvas.width = width;
		canvas.height = height;
		context.fillStyle = color;    
		context.fillRect(0, 0, width, height);    
		context.globalCompositeOperation = "multiply";
		context.drawImage(image, 0, 0, width, height);
		context.globalCompositeOperation = "destination-atop";
		context.drawImage(image, 0, 0, width, height);
		return canvas;
	};

至此我们有两种截然不同的绘制方式,两者的代码量差不多,该选择谁呢?让我们测试下两种实现方式的性能:

time = new Date().getTime();
for(var i=0; i<100; i++){
	createColorImage1(image, ''red'');
}
console.log(new Date().getTime() - time);

time = new Date().getTime();
for(var i=0; i<100; i++){
	createColorImage2(image, ''red'');
}
console.log(new Date().getTime() - time);

我在mac air的chrome浏览器下测试了以上代码,createColorImage1需要1630毫秒,createColorImage2需要29毫秒,两者相差56倍,也就是说采用globalCompositeOperation虽然进行了两次drawImage,但性能依然远高于通过getImageData逐个设置像素值的方式。

造成这种巨大差距的根本原因在于createColorImage1的方式完全基于CPU运算,js本就单线程,且密集数值运算也不是js的强项,而采用globalCompositeOperation的渲染方式,浏览器底层完全可以采用GPU等硬件加速的方式达到更加的性能,因此两钟方式性能差异几十倍也不足为奇了,有兴趣可参考微软的几篇关于浏览器Canvas硬件加速相关的文章:

http://blogs.msdn.com/b/ie/archive/2011/04/26/understanding-differences-in-hardware-acceleration-through-paintball.aspx

http://msdn.microsoft.com/en-us/hh562071.aspx

以上两种方式都是基于HTML5的Canvas的2D方式,其实更直接借助GPU的应该是Canvas的WebGL技术,下篇我们将介绍更好玩的基于WebGL的Shading Language的像素操作方式,当然使用Hightopo的HT for Web不需要关心这些底层技术细节,HT会自动选择最合适的染色机制,因为有些终端浏览器不支持globalCompositeOperation的功能,有些不支持WebGL的硬件加速,因此自动选择最合适的渲染机制也是需要底层框架足够智能化的。


HTML5 - 各大浏览器对html5的支持情况

HTML5 - 各大浏览器对html5的支持情况

总结

以上是小编为你收集整理的HTML5 - 各大浏览器对html5的支持情况全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

HTML5----大牛对HTML5的思考总结(一)(笔记篇)

HTML5----大牛对HTML5的思考总结(一)(笔记篇)

1 合肥APP开发的博客


原文链接:http://blog.sina.com.cn/s/blog_1385466310102w28z.html

 

内容提要:本文罗列了该博客的7个观点,主要是关于HTML5及流应用方向的讨论。该作者认为,HTML5,在2015年已经取得突破性进展。利用HTML5的优势让开发商和用户,实打实感受了其价值。

 

观点1:

Facebook发布React Native,并非拥抱HTML5。React Native虽然仍然是JS,但并不兼容HTML5。通过Facebook的自定义语法,ReactNative实现了更高效率的渲染引擎,提升了性能表现。

 

观点2 :

流应用,HTML5产业的一大亮点。它对于HTML5缺陷的弥补和优势的发挥,可以说做得淋漓尽致。 App是JS代码,并像流媒体一样流式发行、边用边下,实现了5秒内完成客户端App的下载、安装、启动。App二次使用仍然在桌面点图标启动,应用使用体验也与传统原生App没有区别。

 

观点3:

流应用使用了一种强化的JS引擎(HTML5+),这种引擎能让JS调用操作系统的40万API,并将之前HTML5体验不佳的交互都改进为原生体验。不同于React Native的反HTML5方案,HTML5+采取的方案是强化HTML5。

 

观点4:

流应用的出现颠覆了大众对HTML5 的一些错误的认知:

    •      HTML5的性能不行,不如原生

    •      HTML5的api不够,很多功能实现不了

    •      HTML5没法离线运行,断网就不能用了,即使有离线缓存,三方软件清理垃圾后也不能用了

    •      HTML5只能在浏览器里用,没法直接在桌面启动

    •      通过HTML5强化引擎(如PhoneGap/Cordova)开发跨平台App,那是小公司为了省钱做的事,大公司还是要用原生

 

 

观点5:

HTML5有5个原生也比不了的优势:

•      跨平台

•      快速迭代

•      开源生态发达

•      更容易推广

•      天生开放非孤岛,可方便互联

 

观点6:

针对HTML5的优点----“更容易推广”,作者认为:

    用户获取应用,一般通过应用商店或扫码下载。应用商店里点下载原生App,从下载到App真正启动,折损50%,也就是100次下载只有50个App启动激活。而二维码扫描,折损高达90%!很少有人在没WIFI的时候下载十几M的原生包。这些不合理,以往似乎被人忽视了,但这些不合理终将被解决。

    不管是50%还是90%的折损,通过流应用都可以避免。除了降低折损,流应用还有一个推广方面的特点,就是可以充分利用社交网络推广。

    用户分享一个流应用,就像分享一个消息,可以进朋友圈,也可以短信、微博分享。别人点击就可以获得这个流应用。

 

观点7:

之所以说流应用是HTML5产业的里程碑事件,是因为从此后我们可以重新审视HTML5 vs Native之争:


•      HTML5的5个缺点被解决了

•      HTML5对开发商有5个原生比不了的优势

•      HTML5对用户有5个原生比不了的优势。

 

【具体部分,请查看原文】

关于HTML5的formHTML5的form如何关闭自动完成功能?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net – 如何在WebForms中的form.onSubmit期间调用HTML5 form.checkValidity?、HT for Web基于HTML5的图像操作(二)、HTML5 - 各大浏览器对html5的支持情况、HTML5----大牛对HTML5的思考总结(一)(笔记篇)等相关知识的信息别忘了在本站进行查找喔。

本文标签: