HTML中,按钮button与submit区别是什么?

HTML中,按钮button与submit区别是什么?,第1张

HTML中<input type="submit" /> 和 <input type="button" /> 区别为元素定义类型、点击触发动作、功能、enter键的支持、写javascript来阻止等不同。

一、元素定义类型的区别:

1、<input type="button" /> 定义为一个可点击的按钮

2、<input type="submit" /> 定义为一个提交按钮。提交按钮会把表单数据发送到服务器。

二、点击触发动作的区别:

1、<input type="button" /> 如果没有添加onclick事件的监听,点击时没有任何反应。

2、<input type="submit" /> 默认情况下,点击后会执行提交form表单的动作。

三、功能不同:

Submit在表单中使用,它具有类似的默认方法封装。一个常见的点击是提交表单。

按钮是常用的按钮。如果不编写click之类的事件,则此按钮click将没有响应。所有事件都需要手动写入。

四、是否具备enter键的支持:

使用提交后,页面支持键盘输入键的操作。然而,许多web软件设计者可能不注意提交的统一性

使用按钮时,页面通常不支持回车键。所以你需要支持回车键。必须设置提交。默认的回车键在页面上的第一次提交时操作。

五、是否需要写javascript来阻止:

button这就是一个按钮。如果你不写javascript的话,按下去什么也不会发生。

submit这样的按钮用户点击之后会自动提交form,除非你写了javascript阻止它。

Ajax向服务器发送请求

Ajax对象创建完成后,下面就要讲解一下Ajax如何使用。首先详细讲解一下Ajax向服务器发送请求所需的两个方法,具体如下:

(1)open()方法

open()方法用于创建一个新的HTTP请求,并指定此请求的类型(如GET、POST等)、URL以及验证信息,其声明方式如下所示:

在上述声明中,method用于指定请求的类型,其值可为POST、GET、PUT及PROPFIND,大小写不敏感;URL表示请求的地址,可以为绝对地址也可以为相对地址,并且可以传递查询字符串。其余参数为可选参数,其中,asyncFlagy用于指定请求方式,同步请求为false,默认为异步请求true;userName用于指定用户名,password用于指定密码。

(2)send()方法

send()方法用于发送请求到HTTP服务器并接收回应。其声明方式如下所示:

在上述声明中,content用于指定要发送的数据,其值可为DOM对象的实例、输入流或字符串,一般与POST请求类型配合使用,需要注意的是,如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。

需要注意的是,在使用GET方式传递特殊字符或中文参数时,要使用JavaScript中的encodeURIComponent()函数将其转换成“%十六进制数”的形式,防止在某些浏览器(如IE浏览器)中中文乱码的问题。

Ajax接收服务器返回的信息

了解Ajax向服务器发送请求后,下面将对Ajax如何接收服务器返回的信息(例如,HTML标签、CSS样式、字符串、XML、JSON等),进行详细讲解。具体如下:

(1)readyState属性

readyState属性用于返回Ajax的当前状态,状态值有5种形式,具体如表所示。

(2)onreadystatechange属性

onreadystatechange事件属性用于感知readyState属性状态的改变。为了大家更好的理解这两个属性的使用,下面创建一个服务器端的文件indexphp,用于输出字符串,然后在浏览器端indexhtml中向服务器端发送请求,并在控制台输出状态值。具体示例如下所示:

创建服务器端文件:indexphp

创建浏览器端文件:indexhtml

在浏览器中访问客户端文件,按“F12”键,切换到控制台,查看输出结果,具体如下图所示。

从图中可以看出,通过onreadystatechange事件属性可以清晰的感知Ajax状态的改变,同时使用readyState获取转变后的状态值。例如Ajax从0(未初始化)状态变成1(初始化)状态值时,Ajax此时的状态值为1。

(3)status属性

status属性用于返回当前请求的HTTP状态码,常见的状态码如表所示。

值得一提的是,在感知当前Ajax对象状态时,为了追求程序的严谨性,需要同时判断当前HTTP状态status是否等于200(请求成功)。

需要注意的是,Ajax中的statusText属性,仅当数据发送并接收完毕后,才可以获取当前请求的响应状态。

(4)获取响应信息的相关属性

当数据接收完毕且请求服务器的请求成功时,即可以使用Ajax中提供的相关属性获取服务器的响应信息。具体的属性及相关说明如下表所示。

在上表中,responseText属性用于返回文本格式的响应数据;属性responseBody表示直接从服务器返回并未经解码的二进制数据;responseXML属性用于接收XML数据格式的响应数据。

1在页面添加一个输入框和一个按钮

<%@ Page Language="C#" CodeFile="SendEMailaspxcs" Inherits="SendEMail" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" "http://wwww3org/TR/xhtml1/DTD/xhtml1-transitionaldtd">

<html xmlns="http://wwww3org/1999/xhtml" >

<head runat="server">

<title>使用ASPNET发送HTML格式邮件</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<asp:Button ID="Button1" runat="server" Text="SendEmail" OnClick="Button1_Click" /></div>

</form>

</body>

</html>

2添加后台事件

using System;

using SystemData;

using SystemConfiguration;

using SystemCollections;

using SystemWeb;

using SystemWebSecurity;

using SystemWebUI;

using SystemWebUIWebControls;

using SystemWebUIWebControlsWebParts;

using SystemWebUIHtmlControls;

using SystemText;//StringBuilder相关的命名空间

using SystemIO;//文件流相关的命名空间

public partial class SendEMail : SystemWebUIPage

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

string strResult = stringEmpty;

if (SendEmail(thisTextBox1TextTrim()))

{

strResult = "Successed!";

}

else

{

strResult = "Defeated!";

}

ResponseWrite("<script language='javascript'>");

ResponseWrite("alert('"+strResult+"!');");

ResponseWrite("</script>");

}

private static bool SendEmail(string strName)

{

string Subject = "使用ASPNET发送HTML格式邮件";

jmailMessage Jmail = new jmailMessage();

//读取HTML模板,即发送的页面

string strPath = SystemWebHttpContextCurrentServerMapPath("~/ahtml");

//读取文件,“SystemTextEncodingDefault”可以解决中文乱码问题

StreamReader sr = new StreamReader(strPath, SystemTextEncodingDefault);

StringBuilder body = new StringBuilder();

bodyAppend(srReadToEnd());

//关闭文件流

srClose();

//替换指定内容,通常为需要变动的内容

body=bodyReplace("<%Message%>", strName);

string FromEmail = "XXXX@163com";

string ToEmail = "XXXX@XXX";

//Silent属性:如果设置为true,JMail不会抛出例外错误 JMail Send( () 会根据操作结果返回true或false

JmailSilent = true;

//Jmail创建的日志,前提loging属性设置为true

JmailLogging = true;

//字符集,缺省为"US-ASCII"

JmailCharset = "GB2312";

//信件的contentype 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。

JmailContentType = "text/html";

//添加收件人

JmailAddRecipient(ToEmail, "", "");

JmailFrom = FromEmail;

//发件人邮件用户名

JmailMailServerUserName = "XXXX";

//发件人邮件密码

JmailMailServerPassWord = "XXXX";

//设置邮件标题

JmailSubject = Subject;

//邮件添加附件,(多附件的话,可以再加一条JmailAddAttachment( "c:\\testjpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的JmailContentType="text/html";删掉。否则会在邮件里出现乱码。

//JmailAddAttachment( "c:\\testjpg",true,null);

//邮件内容

JmailBody = bodyToString()Trim();

//Jmail发送的方法,可以修改,此为163邮箱服务器

bool bSend = JmailSend("smtp163com", false);

JmailClose();

return bSend;

}

}

3作为模板的HTML页面(JavaScript事件无法触发,CSS样式不能为引用文件)

<html xmlns="http://wwww3org/1999/xhtml">

<head><title>使用ASPNET发送HTML格式邮件</title>

</head>

<body>

<form>

<input type="text" id="lbText" value="<%Message%>" /><br />

<b>From:</b><a href="http://zhoufengcnblogscom/">http://zhoufengcnblogscom/</a><br />

<img id="img" src="https://gss0baiducom/7LsWdDW5_xN3otqbppnN2DJv/木合达/pic/item/30392594485a1413d21b70c9jpg" width="139px"/>

</form>

</body>

</html>

HTML标记是在客户端 由浏览器来解释的。

如按钮 <input type="button" value="ok" />

但是这样的按钮 需要配合js来实现点击的功能,js 的能力决定了你的该按钮的能力。

HTML服务器端控件(aspnet),每个按钮都有着丰富的事件,属性,非常像VB,net等里面的Button,如果你学过vb就知道 双击按钮 可以写双击事件等等,非常的方便,利用c#或vbnet等编程语言可以丰富很多功能。但HTML服务器端控件 是在服务器上解释的,服务器会把一切都解释称 <input type="button" value="ok" /> 形式发送大客户端 再有客户端浏览器解释成图形。服务器控件里面写的事件啊什么的都会转化成相应的脚本。

可以这么狭义的理解:js大家不擅长,那就用擅长的语言在对应的服务器端控件里面写,让服务器给我们解释成js。

是不是功能横强大,很方便呢?是啊。

服务器端一个编译 解析的过程是不是消耗资源呢?

所以相对而言:

html标记控件 运行效率高,开发效率低。

html服务器端控件 开发效率高,运行效率低。

aspnet控件是服务端控件

响应服务端事件

HTML控件是客户端控件

响应客户端事件

如果你对服务端/客户端不明白的话先去了解一下

简单来说

HTML客户端的事件是不会提交给服务端的

比如说点击一个按钮 改变文字的颜色

只是针对用户机器本身的 不会发送数据包给远程的服务器

而aspnet按钮点击后

将会以post或者get形式发送给服务器

进行数据库操作等等 页面提交后将会刷新

但是ajax技术可以使客户端控件发送请求给webservice

具体的用法

如果强调客户端的 应用

用客户端控件更能使用户感觉到方便

不用刷新页面

而需要数据库等操作时 肯定要用服务端控件

但是没有绝对的

我现在做的项目就是两者结合用

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » HTML中,按钮button与submit区别是什么?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情