html像pho传递表单信息,表单剧本

title: 表单剧本

date: 2016-12-19 15:17

tags: JavaScript

0x00 表单基本

在 HTML 中,表单由

元夙来示意,然则在 JavaScript 中,表单对应的是 HTMLFormElement 范例,它具有的一些独占的属性和要领。action: 吸收要求的 URL

elements: form 中一切控件的鸠合

length: form 中控件的数目

method: 要发送的 HTTP 要求范例

name: 表单的称号

reset(): 重置 form 域为默许值

submit(): 提交 form

target: 用于发送要乞降吸收相应的窗口的称号

acceptCharset: 服务器能够处置惩罚的字符集

enctype: 要求的编码范例。

查找表单// 经由过程 ID 查找

var form = document.querySelector("#form1");

// 经由过程 document.forms 鸠合查找

var firstForm = document.forms[0] // 索引查找

var myForm = document.forms["form2"] // 取得 name 为 form2 的表单

提交表单// 通用提交表单

// 自定义提交表单

Submit

// 图象按钮

阻挠表单提交的默许行动var form = document.querySelector("#myForm")

EventUtil.addHandler(form, "submit", function(event){

// 取得事宜对象

event = EventUtil.getEvent(event)

var target = EventUntil.getTarget(event)

// 阻挠默许事宜

EventUtil.preventDefault(event);

// 取得提交按钮

var btn = target.elements["submit-btn"]

// 考证表单

// do something

// 禁用提交按钮

btn.disabled = true

})为防止用户反复提交,应该在第一次提交表单今后就禁用提交按钮,或许应用 onsubmit 事宜处置惩罚顺序作废后续的表单提交操纵

如上,要在第一次点击后就制止提交,只须要监听 submit 事宜,并在该事宜发作时禁用提交表单按钮即可。

表单字段

经由过程 form 的 elements 属性能够取得一切表单字段,然后能够装置索引或许 name 特征来接见它们。

假如多个表单控件都运用一个 name ,那末会放回一改 name 定名的一个 NodeList 鸠合

共有的表单字段属性

共有的表单字段属性:disabled: 布尔值,示意当前字段是不是被禁用

form: 指向所属的 form

name: 当前字段的称号

type: 当前字段的范例

除了

以外,一切的表单都有 type 属性,关于 元素,

该值等于 HTML 的 type 值。

关于元素该值以下:单选列表:type 属性值 select-one

多选列表:type 属性值 select-multiple

共有的要领和事宜

每一个表单字段都有两个要领:focus() 和 blur() 要领。

另外,一切表单字段都支撑以下 3 个事宜:blur: 字段落空核心时 触发

focus: 字段取得核心时触发

change: 关于 和 元素,在它们落空核心且 value 值转变时触发;关于 元素,在其选项转变时触发。

0x01 文本框剧本

有两种体式格局表现文本框: 的单行文本框和 的多行文本框。

关于单行文本框,经由过程 size 特征能够指定文本框能够显现的字符数,经由过程 value 特征接见其内容,而maxlength则用于指定其能够接收的最大字符数。

相干于 要指定文本框的大小能够运用 rows 和 cols 特征。who are you?

挑选文本

和 都支撑 select() 要领用于选中一切文本,而与此对应的是 select 事宜。

select事宜在选中文本的时刻就会触发var textbox = form.elements['textbox']

textbox.onselect = function(){

alert(textbox.value)

}

然则经由过程 select 事宜只能肯定用户什么时候挑选了文本,却不晓得用户究竟挑选了哪些文本,基于此 HTML5 添加了 selectionStart 和 selectionEnd 要领。

要取得用户在文本框中拔取的文本,能够运用以下要领:textbox.onselect = function(){

alert(textbox.value.substring(textbox.selectionStart, textbox.selectionEnd))

}

HTML5 束缚考证 API

required 必填在字段

任何标注有 required 的字段,在提交表单时都不能空着。

该属性适用于 ,, 字段。

plachholer 提示符

0x02 挑选框剧本

挑选框经由过程 元素和 元素建立,它们同属于 HTMLSelectElement 范例,为了轻易交互,该范例供应了以下属性:add(newOption, relOption): 插进去新的 元素,在相干项之前

multiple: 布尔值,是不是许可多项挑选

options: 一切的 元素鸠合

remove(index): 移除给定位置的索引项挑选框 的 type 属性值不是 select-one 等于 select-muitiple

为了便于接见数据,每一个 元素都有一个 HTMLOptionElement 对象,该对象具有以下属性:index: 当前挑选项在 options 鸠合中的索引

selected: 布尔值,示意当前选项是不是被选中

select: 选项的文本

value: 选项的值 元素的值,就是选中的 元素的 value 特征值。假如没有 value 特征,则是 元素的文本值

挑选项

关于只能挑选一项的挑选框,最简朴的体式格局就是运用 selectedIndex 属性:var selectedOption = selectbox.options[selectbox.selectedIndex]

而关于能够挑选多项的挑选框,我们须要轮回遍历挑选鸠合,然后测试每一个挑选项的 seleted 属性function getSelectedOption(selectBox){

var result = new Array()

var option = null

for(let i=0,len = selectBox.options.length;i < len;i++){

option = selectBox.options[i]

if(option.selected){

result.push(option)

}

}

return result

}

var selectBox = document.querySelector("#selectBox")

var selectedOptions = getSelectedOption(selectBox)

// 取得一切被选中的项

0x03 表单序列化

在表单对服务器发送数据之前,须要将表单中的有用数据举行格式化的编码,即表单序列化。

下面的 serialize 函数能够完成表单的序列化操纵:function serialize(form){

let parts = [],field = null, i, len, j, optLen, option, optValue;

for(i =0, len = form.elements.length; i

field = form[i]

switch(field.type){

case "select-one":

case "select-multiple":

if(field.name.length){

for(j=0,optLen = field.options.length;j < optLen;j++){

option = field.options[j]

if (option.selected){

optValue = ""

if (option.hasAttribute){

optValue = option.hasAttribute("value")? option.value : option.text

} else {

optValue = option.attributes["value"].specified ? option.value : option.text

}

parts.push(encodeURIComponent(field.name) + "=" +encodeURIComponent(optValue))

}

}

}

break;

case undefined: //字段集

case "file": //文件输入

case "submit": //提交按钮

case "reset": //重置选项

case "button": //自定义按钮

break;

case "radio": //单选按钮

case "checkbox": //复选按钮

if (!field.checked){

break;

}

// 实行默许操纵

default:

// 不包括没有名字的字段

if (field.name.length){

parts.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value))

}

}

}

// 对表单字段的称号和值举行 URL 编码,各字段之间运用 "&" 分开

return parts.join("&")

}

在全部表单序列化的过程当中,轻微庞杂一点的就是 元素了,它能是单选框或许多选框,那末我们须要去遍历控件中的每一项。当不存在 value 特征时,运用 text 的值,我们运用了 hasAttribute() ,而在 IE 中须要运用 specified 特征。

关于单选按钮和复选按钮,须要搜检其 checked 属性书否为 false,是则退出 switch 轮回。若为 true 则将其键值对举行编码,推到 parts 数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pho 是一种面向流的编程语言,而 Python 是一种通用编程语言,可以用于开发后端应用程序。如果您想将 Pho 与 Python 后端集成,您可以使用 Python 的网络编程库(如 Flask 或 Django)来创建 REST API,然后使用 Pho 的网络库来发送 HTTP 请求和接收响应。这样,Pho 可以通过与 Python 后端的交互来实现与前端的交互。 ### 回答2: Pho接Python后端主要是指Pho语言与Python语言的集成和通信。Pho是一种面向对象的多代理系统编程语言,而Python是一种通用的高级编程语言。 首先,Pho与Python可以通过各自的API进行通信。通过Pho的API,可以在Pho程序中调用Python的函数和方法,从而利用Python的强大功能来处理数据、进行计算等。同样地,通过Python的API,可以在Python程序中调用Pho的类和方法,从而实现多代理系统的功能。 其次,Pho和Python可以通过共享数据结构来交换数据。例如,可以使用Pho中的实体(entity)来创建对象,并在Python中访问和操作这些对象。相反地,也可以在Python中创建对象,并在Pho中使用这些对象。这种数据结构的共享使得Pho和Python可以共同处理复杂的数据结构和算法。 此外,Pho和Python还可以通过消息传递来进行通信。Pho中的实体通过发送和接收消息的方式进行通信。可以在Pho中通过发送消息将数据传递给Python后端,Python后端进行处理后再通过发送消息返回结果给Pho。这种消息传递的方式可以实现基于事件的系统,以及分布式计算等功能。 总而言之,Pho接Python后端意味着Pho和Python之间可以进行双向的通信和数据共享,从而实现更加灵活和功能丰富的程序设计。这种集成有助于开发人员充分利用Pho和Python各自的优势,实现更加高效和强大的应用程序。 ### 回答3: Pho是一种用于构建以Web界面为中心的应用程序的低代码开发平台。而Python是一种高级编程语言,广泛用于Web开发、数据科学和人工智能等领域。将Pho接入Python后端,可以实现更加强大且灵活的应用开发。 首先,通过将Pho与Python后端集成,可以利用Pho的低代码开发特性快速搭建用户界面。Pho提供了丰富的预制组件和模板,使得开发者可以轻松构建用户友好的前端界面。然后,使用Python后端处理与数据库、API或其他外部资源的交互。Python作为一种功能强大的编程语言,具备丰富的库和框架,可以实现复杂的业务逻辑和数据处理。 其次,结合Pho和Python后端还可以实现前后端之间的数据交互。Pho提供了与后端的API通信的功能,可以通过HTTP请求和响应来实现数据的传输和处理。Python后端可以接收Pho发送的请求,然后进行相应的数据处理和逻辑运算,并将结果返回给Pho前端。 此外,Pho和Python后端的结合还可以实现系统的拓展和定制化开发。Pho提供了灵活的插件机制和扩展接口,使得开发者可以通过Python后端来开发自定义的插件或模块,以满足特定需求。通过这种方式,可以根据具体业务场景来拓展和定制化Pho应用。 总之,将Pho接入Python后端可以充分发挥二者的优势,快速构建功能强大、用户友好的应用程序。这种组合可以提高开发效率,实现更加灵活和定制化的应用开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值