国内简约网站,小程序官网入口,wordpress 网络图片,企业官网首页源码表单元素
一、表单的用途
HTML 表单用于收集用户的输入信息。
HTML 表单表示文档中的一个区域#xff0c;此区域包含交互控件#xff0c;将用户收集到的信息发送到 Web 服务器。
一个表单有三个基本组成部分#xff1a; 表单标签#xff1a;这包含了处理表单数据所用的…表单元素
一、表单的用途
HTML 表单用于收集用户的输入信息。
HTML 表单表示文档中的一个区域此区域包含交互控件将用户收集到的信息发送到 Web 服务器。
一个表单有三个基本组成部分 表单标签这包含了处理表单数据所用的URL以及数据提交到服务器的方式。 表单域(表单控件)包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮包括提交按钮、复位(重置)按钮和一般按钮用于将数据传送到服务器上或者取消输入还可以用表单按钮来控制其他定义了处理脚本的处理工作。
二、表单的典型应用 三、常见的表单元素 四、表单的基本语法
表单是一个包含表单元素的区域。
表单元素是允许用户在表单中输入内容比如文本域textarea、下拉列表select、单选框radio-buttons、复选框checkbox 等等。
我们可以使用 form 标签来创建表单:
form action表单提交地址 method提交方法… 文本框、按钮等表单元素…
/formform表单属性
action 用于指定提交表单数据的请求URL。method 表单数据发送至服务器的方法,常用的有两种 get(默认)/post。
get和post的区别 指代不同: get从指定的资源请求数据。 post向指定的资源提交要被处理的数据 规则不同: get 请求可被缓存请求保留在浏览器历史记录中请求可被收藏为书签请求不应在处理敏感数据时 使用请求有长度限制请求应当用于获取数据。 post请求不会被缓存请求不会保留在浏览器历史记录中不能被收藏为书签请求对数据长度 没有要求。 数据要求不同: get当发送数据时get 方法向 URL 添加数据URL 的长度是受限制的URL 的最大长度是 2048 个字符。与 post 相比**get 的安全性较差**因为所发送的数据是 URL 的一部分。 POST发送数据无限制。**post 比 get更安全**因为参数不会被保存在浏览器历史或 web 服务器 日志中。
get请求的参数 url 可见而 post 请求的参数 url 不可见。
post请求能发送更多的数据类型get请求只能发送ASCII字符
总之 get提交用户输入的信息显示在地址栏中不安全请求内容长度有限制请求速度快。 比如京东、百度、淘宝首页的搜索数据都是get提交 post提交用户输入的信息不会显示在地址栏安全,请求内容长度无限制(重要数据)请求速度慢。 比如用户注册、用户登录都是post提交 当使用get提交方式时 input的name属性值和提交的信息就会显示在地址栏上面 form action# methodgetinput typetext nameusernamebrinput typepassword namepwdbrinput typesubmit/form五、表单控件元素
5.1、表单输入控件
input标签用来定义输入控件。这个标签非常有用它可以实现各种各样的表单控件效果。
根据不同的 type 属性值输入字段拥有很多种形式。输入字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等
控件名称type属性值描述文本框text(默认值)默认。定义一个单行的文本字段默认宽度为 20 个字符。密码框password定义密码字段单选按钮radio定义单选按钮。(性别等)复选框checkbox定义复选框。(爱好等)提交按钮submit定义提交按钮。重置按钮reset定义重置按钮重置所有的表单值为默认值。图片提交按钮image定义图像作为提交按钮。普通按钮button定义可点击的按钮通常与 JavaScript 一起使用来启动脚本隐藏文本框hidden定义隐藏输入字段。前后台交互非常有用文件上传框file定义文件选择字段和 “浏览…” 按钮供文件上传。可以通过accept属性规范选取文件的类型,比如图片/视频,如果不设置则什么类型都可以。accept属性的值: image/* 接受所有的图像文件。image/png 表示只接受图片文件的png文件audio/* 接受所有的声音文件。video/* 接受所有的视频文件。multiple属性可以用来设置一次允许选择多个文件 multiple“multiple” form action methodget!-- name可以为表单控件起名其名称在提交表单时会传输给服务器 --!-- value可以为文本框赋默认值 --!-- readonly表示只读 --!-- required表示该信息必填 和表单域结合可以呈现验证内容 --!-- disabled表示禁用 在页面中呈现灰色 --!-- placeholder可以指定文本框输入前的信息提示 --label fortext*普通文本框 /labelinput typetext nametext idtextbr!-- typepassword 表示密码文本框其输入的内容以密文的形式出现 --*密码文本框 input typepassword namepasswordbr!-- typenumber 表示数字数据库只允许用户输入数字小数或者负数 --*数字输入框 input typenumber namenumberbr日期输入框 input typedate namedatebr!-- typetel 在移动端会调起数字键盘 --!-- maxlength11表示输入最大的字符数 --电话号码输入框input typetel nametel maxlength11br!-- typeemail 在移动端会显示 --邮箱输入框 input typeemail nameemailbr!-- typeradio 使用name属性可以让单选按钮进行分组 name相同时一次只能选择一个 --!-- checked表示默认选中 --*单选框labelinput typeradio namesex value男 checked男/labellabelinput typeradio namesex value女女/labelbr*复选框input typecheckbox namehobby value足球足球input typecheckbox namehobby value排球排球input typecheckbox namehobby value乒乓球兵乓球br搜索框input typesearch namebr!-- typebutton在value属性中可以显示按钮的内容 --*普通按钮input typebutton value普通按钮br!-- typesubmit 结合(form)表单域实现提交效果在表单中 submit 点击之后会自从触发提交行为会向action指定的地址提交请求方式为method指 定的方式通常表单提交为post--*提交按钮input typesubmit value提交按钮br!-- 图片会被当作一个按钮 --input typeimage src../02Day/image/华仔.png height50!-- reset表示重置按钮会让表单回到默认值--重置按钮input typereset value重置按钮br!-- accept属性可以过滤文件 --文件上传框input typefile namefile acceptimg/*br!-- 隐藏域在页面不可见但是可以随着表单一起提交给服务端--隐藏域input typehiddenbr!-- cols相当于width rows相当于heigh --textarea name id cols30 rows10/textareabr!-- selected指定默认选中 --!-- optgroup可以进行分组 label理科属性命名分组的标题 --请选择课程:select namerecouseoptgroup label理科/optgroupoption value高等数学高等数学/optionoption value离散数学 selected离散数学/optionoption value线性代数线性代数/optionoption value概率论概率论/option/select/form5.2、其他表单控件
5.2.1、textarea
定义文本域 (一个多行的输入控件)
文本区域中可容纳无限数量的文本其中的文本的默认字体是等宽字体通常是 Courier。
可以通过 cols 和 rows 属性来规定 textarea 的尺寸大小不过更好的办法是使用 CSS 的 height 和 width 属性。
缩放设置
禁止缩放resize: none;水平缩放resize: horizontal;垂直缩放resize: vertical;水平垂直缩放resize: both; !-- cols相当于width rows相当于heigh --文本域textarea name id cols30 rows10/textareabr5.2.2、label:
定义了 input 元素的标签一般为输入标题
label 元素不会向用户呈现任何特殊效果。不过它为鼠标用户改进了可用性。如果您在 label 元素内点击文本就会触发此控件。就是说当用户选择该标签时浏览器就会自动将焦点转到和标签相关的表单控件上。
方式一 for属性,让标签和指点的input元素建立关联,多数使用在单选或复选给单选或复选后面的文字加入label标签,for属性值是input的id值 方式二 将input元素包含在label标签中如果将input放置在label标签之间,那么for属性就可以不用 注和单选、复选结合使用提高用户体验。 label forphone手机号码/labelinput typetel namephone idphone
br爱好labelinput typecheckbox namehobby value足球足球/labellabelinput typecheckbox namehobby value篮球篮球/labellabelinput typecheckbox namehobby value羽毛球羽毛球/labellabelinput typecheckbox namehobby value乒乓球乒乓球/label5.2.3、fieldset、legend (了解)
fieldset标签可以将表单内的相关元素分组。
fieldset标签会在相关表单元素周围绘制边框。
legend元素为 fieldset元素定义标题。 fieldsetlegend测试/legendplabel forusername用户名/labelinput typetext nameusername idusername/pp密码input typepassword namepassword placeholder请输入密码/p/fieldset5.2.4、select、option
select定义了下拉选项列表
option定义下拉列表中的选项一个条目。
size属性用来定义列表中显示的列表项,在select标签设置multiple属性用来定义是否可以多选
selected指定默认选中 form action methodgetp请选择课程:select namerecourseoption value高等数学 selected高等数学/optionoption value离散数学离散数学/optionoption value高等数学高等数学/optionoption value概率论概率论/option/select/p/formoptgroup: 定义选项组
对列表项进行分组并命名,必须使用该标签的label属性才可以命名;
1、把对应的option标签放在optgroup里面
2、给optgroup添加label属性,用以列表组命名 form action methodget!-- selected指定默认选中 --请选择课程:select namerecouse!-- optgroup可以进行分组 label理科属性命名分组的标题 --optgroup label理科option value高等数学高等数学/optionoption value离散数学 selected离散数学/optionoption value线性代数线性代数/optionoption value概率论概率论/option/optgroupoptgroup label文科option value语文语文/optionoption value历史历史/optionoption value政治政治/optionoption value地理地理/option/optgroup/form5.2.5、button:定义一个点击按钮
在 button元素内部您可以放置内容比如文本或图像。这是该元素与使用 input元素创建的按钮之间的不同之处。
提示请始终为 button元素规定 type 属性。不同的浏览器对 button元素的 type 属性使用不同的默认值。
type属性:可以设置三个值 submit/reset/button与input元素设置的按钮含义一致 form action methodgetbutton typebutton按钮/button button typesubmit提交/buttonbutton typereset重置/button /form5.3、表单元素的属性
属性值描述*type上述值type 属性规定要显示的 input元素的类型。*valuetext指定 input元素 value 的值。srcURLsrc 属性规定显示为提交按钮的图像的 URL。 (只针对 type“image”)sizenumbersize 属性规定以字符数计的 input元素的可见宽度。*readonlyreadonlyreadonly 属性规定输入字段是只读的。*nametextname 属性规定 input元素的名称。*maxlengthnumber属性规定 input元素中允许的最大字符数。*disableddisableddisabled 属性规定应该禁用的 input元素。*checkedcheckedchecked 属性规定在页面加载时应该被预先选定的 input元素。 (只针对 type“checkbox” 或者 type“radio”)acceptaudio/* video/* image/* MIME_type规定通过文件上传来提交的文件的类型。 (只针对type“file”)*selectedselected下拉框的默认选中 form action methodget!-- value属性的值在普通文本框里为默认输入的值 --*普通文本框input typetext nametext value12345 br!-- readonly为只读选中时没有光标不能修改内容 --*普通文本框input typetext nametext value12345 readonly br!-- disabled表示禁用 文本框会变灰 无法选中 --*普通文本框input typetext nametext value12345 disabled br!-- maxlength6表示允许输入的最大字符数是6个 --*普通文本框input typetext nametext maxlength6 br!-- checked在单选框和复选框中表示默认选中 --性别labelinput typeradio namesex value男 checked男/labellabelinput typeradio namesex value女女/label br爱好labelinput typecheckbox namehobby value足球足球/labellabelinput typecheckbox namehobby value篮球篮球/labellabelinput typecheckbox namehobby value羽毛球羽毛球/labellabelinput typecheckbox namehobby value乒乓球 checked乒乓球/label br!-- selected在下拉框中表示默认选中 --请选择课程:select namerecourseoption value高等数学高等数学/optionoption value离散数学离散数学/optionoption value线性代数 selected线性代数/optionoption value概率论概率论/option/select/form 5.4 重点、要点
重点标签属性
1、我们在表单里面填写的数据最终以keyvalue的形式提交给服务器
key表单控件name属性的值
value输入的数据 或 选择的选项
2、单选框和复选框的name属性的值必须保持一致
3、单选框和复选框必须提供value属性用来作为表单提交的值
text文本输入框和passowrd密码框你输入的内容作为value提交
4、单选框和复选框的默认选中只需要添加checked属性即可
5、文件上传框可以通过accept属性来限定文件的类型。我们可以通过multiple属性来实现多选。
6、select定义下拉框option定义下拉框选项需要给其定义value属性及其值
我们可以通过size属性来控制下拉框显示的数量
通过multiple属性来实现多选
7、下拉框的默认选中只需要添加selected属性即可
六、HTML5新表单元素
6.1、HTML5 新的 input 类型
HTML5 拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证。
控件名称type属性值描述电子邮箱email包含 e-mail 地址的输入域(有校验)拾色器colorcolor 类型用在input字段主要用于选取颜色 选择你喜欢的颜色: 日期字段datedatetimedatetime-localmonthweektime定义日期字段包含年月日定义日期字段UTC 时间(仅opera支持)定义日期字段包含年月日时分无时区定义日期年月定义年中的周数定义时间数值框number输入类型用于包含数字值的输入字段可以设置可接受数字的限制。使用min属性和max属性设置最小和最大值step设置数字间隔 如果step“3” ,那么数值间隔是3数值滑块空间range用于应该包含一定范围内数字值的输入域。。range 类型显示为滑动条。 使用min属性和max属性设置最小和最大值,step设置数字间隔搜索框search用于搜索字段比如站内搜索或谷歌搜索等。电话号码框tel定义输入电话号码字段,但是不会进行校验url地址url包含 URL 地址的输入字段。会在提交表单时对 url 字段的值自动进行验证。
注意:并不是所有的主流浏览器都支持新的input类型不过您已经可以在所有主流的浏览器中使用它们了。即使不被支持仍然可以显示为常规的文本域。
body!-- 我们通过input标签的type属性可以实现各种控件效果H5之前type属性的值text、password、radio、checkbox、file、hidden、submit、reset、button新的 input 类型type的值:email定义电子邮箱有简单的校验color拾色器日期相关date 定义年月日选择器datetime-local 定义年月日时分选择器month 定义年月week 定义年中的周数time 定义时分number 定义数值框,有检验range 数值滑块无论是数值框还是数值滑块都具有如下三个属性max 最大值min 最小值step 步长search 搜索框tel 电话号码框没有校验url url地址输入框有简单的校验--form actionp电子邮箱 input typeemail nameemail/pp拾色器input typecolor namecolor/pp年月日: input typedate namedate/pp年月日时分: input typedatetime-local namedatetime-local/pp年月: input typemonth namemonth/pp年中的周数: input typeweek nameweek/pp时分: input typetime nametime/pp数值: input typenumber namenumber/pp数值滑块空间:input typerange min2 max20 step3/pp搜索框: input typesearch namesearch/pp电话框: input typetel nametel/ppURL: input typeurl nameurl/pbutton typesubmit提交/button/form
/body 6.2、HTML5 新的表单属性
6.2.1、*form / input autocomplete 属性
autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。
当用户在自动完成域中开始输入时浏览器应该在该域中显示填写的选项。
提示: autocomplete 属性有可能在 form元素中是开启的而在input元素中是关闭的。
注意: autocomplete 适用于 form 标签以及以下类型的 input 标签text, search, url, tel, email, password, datepickers, range 以及 color。
HTML form 中开启 autocomplete (一个 input 字段关闭 autocomplete ) !-- 在整个表单中我们在输入框中提交的历史数据都会自动提示autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。关于自动补全一定是分场景的如果是注册我们肯定不需要自动补全功能如果是登录用户名可以开启自动补全如果autocompleteoff添加给form表单那么表单里面的所有元素都关闭自动补全--!-- form action autocompleteoff --form action用户名: input typetext nameusername autocompleteoff br密emsp;码: input typepassword namepasswordbr姓emsp;名: input typetext namenamebrbutton typesubmit提交/button/form6.2.2、*form novalidate 属性
novalidate 属性是一个 boolean(布尔) 属性.
novalidate 属性规定在提交表单时不应该验证 form 或 input 域。
无需验证提交的表单数据 !-- novalidate提交信息时不会再进行校验 --form action# methodget novalidate autocompleteoff邮箱input typeemail nameemailbrURLinput typeurl nameurlbrbutton typesubmit提交/button/form6.2.3、*input placeholder 属性
placeholder 属性提供一种提示hint描述输入域所期待的值。
简短的提示在用户输入值前会显示在输入域上。
注意: placeholder 属性适用于以下类型的 input标签text, search, url, tel, email 以及 password。
6.2.4、*input required 属性
required 属性规定必须在提交之前填写输入域不能为空。
注意:required 属性适用于以下类型的 input标签text, search, url, tel, email, password, date pickers, number, checkbox, radio 以及 file。
6.2.5、input step 属性
step 属性为输入域规定合法的数字间隔。
如果 step“3”则合法的数是 -3,0,3,6 等
提示step 属性可以与 max 和 min 属性创建一个区域值.
**注意**step 属性与以下type类型一起使用: number, range, date, datetime, datetime-local, month, time 和 week.
6.2.6、input autofocus 属性
autofocus 属性是一个 boolean 属性.
autofocus 属性规定在页面加载时域自动地获得焦点。 !-- placeholder 属性提供一种提示hint描述输入域所期待的值。required 属性规定必须在提交之前填写输入域不能为空。如果我们使用正则校验required其实可以不使用。这个属性也是重要的原因是很多框架中还在用这个属性step 属性为输入域规定合法的数字间隔。autofocus 属性规定在页面加载时域自动地获得焦点。--form action用户名: input typetext nameusername autocompleteoff placeholder请输入用户名 br密emsp;码: input typepassword namepassword placeholder请输入密码 autofocus requiredbr姓emsp;名: input typetext namename placeholder请输入姓名brbutton typesubmit提交/button/form6.2.7、input form 属性
form 属性规定输入域所属的一个或多个表单。
**提示:**如需引用一个以上的表单请使用空格分隔的列表。
位于form表单外的 input 字段引用了 HTML form (该 input 表单仍然属于form表单的一部分):
form action# idform1First name: input typetext namefnamebrinput typesubmit value提交
/formLast name: input typetext namelname formform16.2.8、input formaction 属性
formaction 属性用于描述表单提交的URL地址.
formaction 属性会覆盖form元素中的action属性.
注意: formaction 属性用于 type“submit” 和 type“image”.
以下HTMLform表单包含了两个不同地址的提交按钮
form actiondemo-form.phpFirst name: input typetext namefnamebrLast name: input typetext namelnamebrinput typesubmit value提交brinput typesubmit formactiondemo-admin.phpvalue提交
/form6.2.9、input formenctype 属性
formenctype 属性描述了表单提交到服务器的数据编码 (只对form表单中 method“post” 表单)
formenctype 属性覆盖 form 元素的 enctype 属性。
注意: 该属性与 type“submit” 和 type“image” 配合使用。
第一个提交按钮已默认编码发送表单数据第二个提交按钮以 “multipart/form-data” 编码格式发送表单数据:
form actiondemo-post_enctype.php methodpostFirst name: input typetext namefnamebrinput typesubmit value提交input typesubmit formenctypemultipart/form-datavalue以 Multipart/form-data 提交
/form6.2.10、input formmethod 属性
formmethod 属性定义了表单提交的方式。
formmethod 属性覆盖了 form元素的 method 属性。
注意: 该属性可以与 type“submit” 和 type“image” 配合使用。
重新定义表单提交方式实例:
form actiondemo-form.php methodgetFirst name: input typetext namefnamebrLast name: input typetext namelnamebrinput typesubmit value提交input typesubmit formmethodpost formactiondemo-post.phpvalue使用 POST 提交
/form6.2.11、input formnovalidate 属性
novalidate 属性是一个 boolean 属性.
novalidate属性描述了 input 元素在表单提交时无需被验证。
formnovalidate 属性会覆盖 form 元素的novalidate属性.
注意: formnovalidate 属性与 type“submit” 一起使用
两个提交按钮的表单(使用与不适用验证 ):
form actiondemo-form.phpE-mail: input typeemail nameuseridbrinput typesubmit value提交brinput typesubmit formnovalidate value不验证提交
/form6.2.12、*input height 和 width 属性
height 和 width 属性规定用于 image 类型的 input标签的图像高度和宽度。
注意: height 和 width 属性只适用于 image 类型的input标签。
提示:图像通常会同时指定高度和宽度属性。如果图像设置高度和宽度图像所需的空间 在加载页时会被保留。如果没有这些属性 浏览器不知道图像的大小并不能预留 适当的空间。图片在加载过程中会使页面布局效果改变 尽管图片已加载。
定义了一个图像提交按钮, 使用了 height 和 width 属性: !-- input height 和 width 属性注意: height 和 width 属性只适用于 image 类型的input标签。 --form action#input typeimage src../images/login.png width100 height50/form6.2.13、*input list 属性
list 属性规定输入域的 datalist。datalist 是输入域的选项列表。 !-- datalist规定输入域的选项列表。必须和input输入框结合使用input标签的list属性值 和 datalist的id属性值保持一致列表项是由option来定义的当我们在input输入框输入内容的时候它会匹配数据列表中的列表项。由option的value来进行匹配。--input type“text” name”data” list”dlist”datalist id”dlist”option valueCADCAD制图是一款制图软件设计人员利用计算机及其图形设备进行设计工作/optionoption valueHTML5HTML5是构建Web内容的一种语言描述方式。/optionoption valueJAVASCRIPTJavaScript简称“JS”是一种具有函数优先的轻量级解释型或即时编译型的编程语言。/optionoption value.NET.NET是一种用于构建多种应用的免费开源开发平台/optionoption valueJAVAJava 是一个通用术语用于表示 Java 软件及其组件/option/datalist 6.2.14、input multiple 属性
multiple 属性是一个 boolean 属性.
multiple 属性规定input元素中可选择多个值。
注意: multiple 属性适用于以下类型的 input标签 file form action#input typefile namefile multiplebrinput typesubmit/form6.2.15、*input pattern 属性
pattern 属性描述了一个正则表达式用于验证 input元素的值。
注意:pattern 属性适用于以下类型的 input标签: text, search, url, tel, email, 和 password.
提示 是用来全局 title 属性描述了模式.
提示 在我们的 JavaScript 教程中学习到有关正则表达式的内容 !-- input pattern 属性pattern 属性描述了一个正则表达式用于验证 input元素的值。 --form action#input typetel namephone pattern^(1[3456789])\d{9}$ title请输入正确的手机号brinput typesubmit/form6.2.16、*input min 和 max 属性
min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定约束。
注意: min、max 和 step 属性适用于以下类型的 input 标签date pickers、number 以及 range。
input 元素最小值与最大值设置: !-- input min 和 max 属性min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定约束。 --form action#input typedate min1940-10-01input typesubmit/form故事会
《佛跳墙》
佛祖也有破戒跳墙之时更何况凡人翻越心中的欲望之墙往往只在一念之间……
从前有座山山上有座庙庙里有个老和尚还有一个小和尚。有一天老和尚对小和尚说“庙里粮食不多了你下山去化点斋米回来吧。”
小和尚点点头背起袋子就下了山然后再也没有回来。老和尚一个人在庙里等了一年终于按捺不住朝庙门上挂了把锁也下了山去找小和尚。
老和尚翻过那座山来到一片横亘在面前的浩瀚沙漠念了声“阿弥陀佛”不敢往前走。这时候边上来了一个商队得知老和尚是要横穿沙漠就慷慨地允许他加入商队要带他过沙漠。老和尚感激不尽朝商队主人连声道谢。
商队主人朝他摆摆手说“不用谢沙漠里盗贼横行能不能平安穿过还不知道听说有的盗贼还信佛带着你碰碰运气。”
老和尚跟着商队进了沙漠商队里带的食物尽是肉脯烈酒老和尚持身端正滴酒不沾、片肉不进只吃自己随身带的清水干粮。商队上下都说他是有德高僧。
八百里黄沙走了一半的时候商队被盗贼摸了营商队上下都横尸当场。老和尚睁开眼的时候正看见明晃晃的刀尖他大叫一声拿刀的那人呆了呆叫了声“师父。”
老和尚没死他命大他要找的小和尚就在盗贼里还成了首领娶了媳妇。
老和尚看到小和尚饮酒杀人不由得老泪滚滚说“你是信佛之人怎能如此凶恶又怎可如此放纵贪欲”
小和尚答“佛祖不凶不恶为何定要世人敬他畏他佛祖无贪无欲为何要收世人香火”
老和尚无言以对便不再苛责他小和尚继续道“师父这一年来我离山未归历经了千般事、万般劫。刚下山的时候我不懂沙漠深浅只身而入不到两天时间就脱水昏倒。救起我的是一个女子那时我不知她是盗贼之女后来我看见她手持利刃杀人越货也是大惊失色。
我苦口婆心劝她不做孽障可是她说这八百里黄沙养活不了这许多人有人要活下来有人就要死去你愿意做活下来的人还是死去的人 只是自己从来不动手杀人。我看着他们杀了一批又一批的商队自己也被一批又一批的盗贼袭击。我只是心安理得地享受干粮和清水不动肉脯和烈酒自以为持身端正。可是有一天她对我说‘你以为只喝清水、只吃干粮便高我们一等吗你可知道清水是从濒死的人嘴边夺下的干粮是从挣扎的客商包裹里掏出的。’
那一刻我面红耳赤。后来我吃了肉、喝了酒也提刀杀了人到后来更是破了戒娶了她。老首领死后我被盗贼们推为首领杀人越货便成了家常便饭。”
老和尚听了一声叹息劝小和尚跟自己回去。小和尚摇头说“我回不去了师父。再说庙后面的那块地只能让我们两个都吃不饱饿不死我不回去你便可以一个人吃饱回去了便只能两个人一起忍饥挨饿。”
老和尚说学佛之人少些物欲也没什么大碍。
小和尚摇头说“欲望是个很可怕的东西。我听说东南方向有一道名菜香飘十里闻者垂涎佛祖也忍受不住诱惑要跳墙而出所以叫做‘佛跳墙’。你看佛祖也有破戒之时更何况是我”
老和尚说“那终究只是一个菜名哪里是说佛祖真的会跳墙而出我会一直等到你愿意回山的那一天。”
于是老和尚就一直跟着小和尚。他看着小和尚带领盗贼们袭击商队他站在远处不声不响只等人死光了后过去将尸体掩埋。开始的时候盗贼们都耻笑他他也平静对待从不反驳。到了后来盗贼们开始尊敬他也像小和尚一样叫他师父帮他掩埋自己手刃的尸体还学会了超度的经文。
再强横的盗贼也不可能永远纵横沙漠他们在劫杀了一支富得流油的商队后就被别人盯上了好几股盗贼联合起来绞杀他们。他们仓皇失措一路奔逃最后逃进一个石窟时只剩下了四个人其中便有小和尚与老和尚。
正在他们无路可走、绝望之时石窟塌了将追杀的人挡在了外面。他们长嘘了一口气可是很快就发现他们将面临更大的绝境在这出不去的石窟里食物只够一个人吃几天的。
知道这件事后老和尚就面对石窟里残破的佛像打坐一言不发余下三人知道他这是要辟谷不食了。那三人看着所剩无几的干粮咽了咽口水将干粮分成三份一人一份没有老和尚的份。
第一天过去饥肠辘辘的三个人就将仅有的食物吞了一半下肚那剩下的一半谁也没有动他们像饿狼一样盯着彼此的食物。第二天他们就打了起来老和尚坐在佛前眼角滚出了浑浊的泪水。第三天的时候另外的两个人都死了只剩下了小和尚他杀红了眼紧握着拳头朝着佛前的老和尚一步一步地走过去伸出了手……
老和尚悚然而惊想也未想就握着藏在身上防身的匕首刺了出去。小和尚睁大了眼慢慢地摊开了伸出的那只手——手心上躺着最后一块干粮。
两天后一队经过的商队从坍塌的石窟中救出了老和尚那时候他已经奄奄一息。 老和尚跟着商队出了沙漠回到了庙里几天后就自己吊死在了庙里的横梁上。在把脖子套进绳套之前他还一直回想着小和尚死前说的话他说“师父佛……佛跳墙了……”