
用以下代码修改
<script language="JavaScript">
<!--
var subcat = new Array();
subcat[0] = new Array('10','1','=1')
subcat[1] = new Array('10','2','=2')
subcat[2] = new Array('10','3','=3')
subcat[3] = new Array('10','4','=4')
subcat[4] = new Array('10','5','=5')
subcat[5] = new Array('10','6','=6')
subcat[6] = new Array('10','7','=7')
subcat[7] = new Array('10','8','=8')
subcat[8] = new Array('10','9','=9')
subcat[9] = new Array('10','10','=10')
subcat[10] = new Array('20','11','=11')
subcat[11] = new Array('20','12','=12')
subcat[12] = new Array('20','13','=13')
subcat[13] = new Array('20','14','=14')
subcat[14] = new Array('20','15','=15')
subcat[15] = new Array('20','16','=16')
subcat[16] = new Array('20','17','=17')
subcat[17] = new Array('20','18','=18')
subcat[18] = new Array('20','19','=19')
subcat[19] = new Array('20','20','=20')
function changeselect1(locationid)
{
documentform1s2length = 0;
documentform1s2options[0] = new Option('==请选择==','#');
for (i=0; i<subcatlength; i++)
{
if (subcat[i][0] == locationid) //[0] [1] 第一列 第二列
{documentform1s2options[documentform1s2length] = new Option(subcat[i][1],subcat[i][2]);} //建立option
//第一次 length=1 因为有==请选择==
//i=9时 length= 10 值有11个 因为从0数起 subcat[i][0] == locationid屏蔽了再写
}
}
//-->
</script>
<form name="form1">
二级联动:
<select name="s1" onChange="changeselect1(thisvalue)">
<option>==请选择==</option>
<option value="10">1-10</option>
<option value="20">11-20</option>
</select>
<select name="s2" onChange="alert(thisvalue)">
<option>==请选择==</option>
</select>
</form>
Vue是一套用于构建用户界面的渐进式框架,该框架被设计为可以自底向上逐层应用,与其他大型框架大为不同。该框架核心库只关注视图层,既易于上手,又能通过npm包管理器与第三方库整合。
一、什么是Vue?
官方给出的概念:Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的前端框架。
1、构建用户界面
用 vue 往 html 页面中填充数据,非常的方便
2、框架
框架是一套现成的解决方案,程序员若想使用只能遵守框架的规范,去编写自己的业务功能
学习 vue,就是在学习 vue 框架中规定的用法
vue 的指令、组件(是对 UI 结构的复用)、路由、Vuex、vue 组件库等都是框架的一部分
二、vue 的两个特性
1、数据驱动视图
概念
在使用了 vue 的页面中,vue 会监听数据的变化,从而自动重新渲染页面的结构 数据的变化会驱动视图自动更新
好处:程序员只管把数据维护好,那么页面结构会被 vue 自动渲染出来
2、双向数据绑定
概念
js 数据的变化,会被自动渲染到页面上 页面上表单采集的数据发生变化的时候,会被 vue 自动获取到,并更新到 js 数据中
开发者不再需要手动 *** 作 DOM 元素,来获取表单元素最新的值
3、实现原理--MVVM
概念
MVVM 是 vue 实现数据驱动视图和双向数据绑定的核心原理。
MVVM 指的是 Model、View 和 ViewModel, 它把每个 HTML 页面都拆分成了这三个部分,如图所示:
在 MVVM 概念中:
Model 表示当前页面渲染时所依赖的数据源。
View 表示当前页面所渲染的 DOM 结构。
ViewModel 表示 vue 的实例,它是 MVVM 的核心。
工作原理
ViewModel 为 MVVM 的核心
它把当前页面的数据源(Model)和页面的结构(View)连接在了一起。
当数据源发生变化时,会被 ViewModel 监听到,VM 会根据最新的数据源自动更新页面的结构 当表单元素的值发生变化时,也会被 VM 监听到,VM 会把变化过后最新的值自动同步到 Model 数据源中
三、Vue的基本使用
步骤
① 导入 vuejs 的 script 脚本文件
② 在页面中声明一个将要被 vue 所控制的 DOM 区域
③ 创建 vm 实例对象(vue 实例对象)
如下图所示
四、指令
1概念
指令(Directives)是 vue 为开发者提供的模板语法,用于辅助开发者渲染页面的基本结构
2类型
vue 中的指令按照不同的用途可以分为如下 6 大类:
① 内容渲染指令
② 属性绑定指令
③ 事件绑定指令
④ 双向绑定指令
⑤ 条件渲染指令
⑥ 列表渲染指令
21 内容渲染指令
(1)v-text 指令
缺点:会覆盖元素内部原有的内容
(2){{ }} 插值表达式:只是内容的占位符,不会覆盖原有的内容
专门用来解决 v-text 会覆盖默认文本内容的问题
(3)v-html 指令的作用:可以把带有标签的字符串,渲染成真正的 HTML 内容
22 属性绑定指令
注意:插值表达式只能用在元素的内容节点中,不能用在元素的属性节点中!
使用 v-bind: 指令,为元素的属性动态绑定值;
简写是英文的 :
在使用 v-bind 属性绑定期间,如果绑定内容需要进行动态拼接,则字符串的外面应该包裹单引号,例如:
<div :title="'box' + index">这是一个 div</div>
加上: 后,“” 中的表达式都按照 js表达式编译,因此字符串类型数据要加上单引号
23 事件绑定指令
(1)v-on: 简写是 @
(2)通过 v-on 绑定的事件处理函数,需要在 methods 节点中进行声明
(3)语法格式为:
<button @click="add"></button>
methods: {
add() {
// 如果在方法中要修改 vue实例data 中的数据,可以通过 this 访问到
thiscount += 1
}
}
(4)$event 的应用场景:如果默认的事件参数对象 e 被覆盖了,则可以手动传递一个$event。
(5)事件修饰符:
prevent 阻止默认跳转行为
<a @clickprevent="xxx">链接</a>
stop 组织冒泡
<button @clickstop="xxx">按钮</button>
capture 以捕获模式触发当前的事件处理函数
onece 绑定的事件只触发一次
self 只有在eventtarget是当前元素自身时触发
(6)按键修饰符:
在监听键盘事件时,我们经常需要判断详细的按键。此时,可以为键盘相关的事件添加按键修饰符, 例如:
24 双向绑定指令
(1)v-model
data中的对象与绑定的输入框中的内容时刻保持一致
辅助开发者在不 *** 作 DOM 的前提下,快速获取表单的数据
<div>
<input v-model="username" />
<input v-model="password" />
</div>
const vm = new Vue(){
data:{
username: '',
password: ''
}
}
(2) v-model 指令的修饰符
//number 自动将用户的输入值转为数值类型
<input v-modelnumber="age" />
//trim 自动过滤用户输入的首尾空白字符
<input v-modeltrim="msg" />
//lazy 在“change”时而非“input”时更新,类似“防抖”
<input v-modellazy="msg" />
25 条件渲染指令
(1)v-show
原理:动态为元素添加或移除 display: none 样式,来实现元素的显示和隐藏
如果要频繁的切换元素的显示状态,用 v-show 性能会更好
(2)v-if
原理:每次动态创建或移除元素,实现元素的显示和隐藏
如果刚进入页面的时候,某些元素默认不需要被展示,而且后期这个元素很可能也不需要被展示出来,此时 v-if 性能更好
form组件理解关键问题
1form的form属性怎么和form-item的v-decorator对应起来?
遍历form-item的slots的子元素,利用vnode的属性vnodedatadirectives来获取v-decorator绑定的对象
2v-decorator 中的属性改变时,怎么联动form表单的数据进行修改?
在渲染(render)form-item的时候,先判断父组件是否存在要绑定的form属性,如果存在,给所有v-decorator的元素绑定默认的change事件(或者其他在rules设置的触发的事件),根据数据变化触发收集数据的函数
3getFieldDecorator 和 v-decorator 有什么区别?
getFieldDecorator是一个返回vnode的函数,适用于jsx
v-decorator适用于模版
版本:iView 274
自从项目用了iView之后,感觉做新需求的一半时间都在疯狂踩坑,所以写个文档记录一下踩过的坑。
此篇为iView表单验证的爬坑记录。
更新:2019310
在项目开发中,表单验证时一直出现各种“不能为空”、验证不通过等情况,但是自身输入和验证方法没有问题时,一般来说是输入框的value为 undefined 的。
比较简单的检测方法就是写一个验证方法,打印或 debugger 查看此时的输入值的取值( value )是否为输入值,如果不是或为 undefined ,那么就是取值错误,而非验证方法错误。
参考文档例子:
解决方法 :
虽然我们在官网上会看到类似例子:
但是建议放弃利用这个方法验证输入值的数据类型。
例如,该验证方法的 type 类型有 number ,但它默认获取输入值为 string ,所以会导致 type 不符(并非因为输入的值不是数字)。
现在用的版本中还未修复此问题,如果已修复则可忽视该建议
在平时项目中,会遇到需要选择日期,但提交时日期不能为空这一需求,那么应该如何验证?
根据上面第一条打印 value 值,发现如果日期没有选择,日期选择器上的 value 值为 ["",""] (使用的是 <DatePicker type="date"></DatePicker> )。
解决方法:
这时候就不能根据长度验证,所以必须循环/遍历判断 value 的数组每一项是否为空。
之前表单验证时遇到一个问题,在不同电脑上, TimePicker 的最终数据值类型不同(不知道是否因为一个是Mac一个是Windows10)。
搜索了一下度娘,发现也有其他人有类似问题。
问题为:
Mac上 TimePicker 最终数据类型为 数组 ,而Win10上 TimePicker 最终数据类型为 本地时区时间 (例如:2017-11-16T05:23:20000Z)。
解决方法:
表单提交前记得判断 TimePicker 最终数据的类型,避免传值给后端时报错。
表单验证规则中, trigger 属性填写的是在什么情况下触发该验证,例如 blur 或者 change 。
但是我们会有某些需求,需要让该输入框在提交的时候才验证,并不需要实时验证,此时就会有把 trigger 删掉的做法。
该做法的结果是, 一进入有表单的页面时,表单就会进行一次校验 。
有时候在项目中会有几个表单的输入框使用同一个校验方法(比如校验数字、身份z之类的),需要根据页面情况显示特定的错误信息提示,但是这个校验方法又是单独一个JS文件。
那么可以在校验规则上添加 message ,写上特定的错误信息提示,这样页面上显示的就是特定的错误信息提示。
在规则中有未填或填错,会有正常提示,但是如果全部填写,步骤1却没办法判断成功并进入方法,会直接报错,有可能是写自定义规则的时候,没有写 callback() 。
以上就是关于.asp中如何在同一页面内接收表单<select>的值并查询数据库记录显示在另一个<select>表单中,求代码全部的内容,包括:.asp中如何在同一页面内接收表单<select>的值并查询数据库记录显示在另一个<select>表单中,求代码、元素上使用v-bind绑定的data-index属性,可以用什么方式来获取index值、ant-design-vue之form源码解读等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)