表单操作
获取表单元素
- Document对象提供了单独的获取方式
document.forms
- 该属性会得到一个类数组集合
<body>
<form action="#">
<input type="text">
</form>
<form action="#" name="biaodan">
<input type="text">
</form>
<script>
/* 该属性会得到一个类数组对象集合 */
var form = document.forms;
console.log( form );// 显示 HTMLCollection(2) - 类数组对象
</script>
</body>
document.表单名称
-
通过表单名称会获取到指定名称的表单元素
- 新版本浏览器可能不支持
<body>
<form action="#">
<input type="text">
</form>
<form action="#" name="biaodan">
<input type="text">
</form>
<script>
var formName = document.biaodan;
console.log( formName );// 显示 <form action="#" name="biaodan">...</form>
</script>
</body>
获取表单组件元素
HTMLFormElement.elements属性
- 通过HTMLFormElement对象提供的elements属性来获取指定表单中的所有组件
<body>
<form action="#">
<input type="text" name="biaodan">
<input type="submit">
</form>
<script>
/* 获取表单元素 */
var form = document.forms[0];
/* 通过HTMLFormElement对象提供的elements属性来获取指定表单中的所有组件 */
var zujian = form.elements;
console.log( zujian );// 显示 HTMLFormControlsCollection(2) - 类数组对象
</script>
</body>
文本内容的选择
select()方法
-
获取当前输入框中所选择的文本内容
- 默认为全选
<body>
<form action="#">
<input type="text" id="input" value="请输入你的账号">
<input type="submit">
</form>
<script>
/* 定位指定元素 */
var input = document.getElementById( 'input' );
/* 为指定表单组件绑定获取焦点事件 */
input.addEventListener( 'focus', function () {
/* select()方法 - 选择当前输入框中所选择的文本内容(默认为全选) */
input.select();
} );
</script>
</body>
select事件
-
只要选择文本内容就会触发select()方法
-
selectionStart()方法
- 选择文本内容开始的位置(索引值)
-
selectionEnd()方法
- 选择文本内容结束的位置(索引值)
-
<body>
<form action="#">
<input type="text" id="input" value="请输入你的账号">
<input type="submit">
</form>
<script>
/* 定位指定元素 */
var input = document.getElementById( 'input' );
/*
select事件
* 只要选择文本内容就会触发select()方法
* selectionStart - 选择文本内容开始的位置(索引值)
* selectionEnd - 选择文本内容结束的位置(索引值)
*/
input.addEventListener( 'select', function () {
console.log( input.selectionStart, input.selectionEnd );// 显示 对应文本内容的索引值
/* 获取输入框中的文本内容 */
var wenben = input.getAttribute( 'value' );
/* 通过截串的方式获取到用户选取的文本内容 */
var neirong = wenben.substring( input.selectionStart,input.selectionEnd );
console.log( neirong );
} );
</script>
</body>
设置文本内容
setSelectionRange()方法
-
设置选择的文本内容
- 如果焦点在文本内容的最后面会全选文本内容
- 如果焦点在文本内容中的任意位置(不是最后)会选中设置文本内容
<body>
<form action="#">
<input type="text" id="input" value="请输入你的账号">
<input type="submit">
</form>
<script>
/* 定位指定表单元素 */
var form = document.forms[0];
/* 获取指定表单中的组件 */
var zujian = form.elements[0];
/* 为指定表单组件绑定获取焦点事件 */
zujian.addEventListener( 'focus', function(){
/*
setSelectionRange()方法
* 设置选择的文本内容
* 如果焦点在文本内容的最后面会全选文本内容
* 如果焦点在文本内容中的任意位置(不是最后)会选中设置文本内容
*/
zujian.setSelectionRange( 1, 5 );
} );
</script>
</body>
下拉列表操作
HTMLSelectElement对象
-
length属性
- 获取当前
<option>
元素的个数
- 获取当前
-
options属性
- 获取当前所有
<option>
元素(类数组集合)
- 获取当前所有
-
selectedIndex属性
- 显示当前被选中的列表项的索引值
<body>
<form action="#">
<select id="game">
<option id="lr" value="lr">怪物猎人</option>
<option value="td">天涯明月刀</option>
<option value="sm">使命召唤</option>
</select>
</form>
<script>
/* 定位指定表单组件 */
var game = document.getElementById( 'game' );
console.log( game.length );// 显示 3(列表项个数)
console.log( game.options );// 显示 HTMLOptionsCollection(3)(类数组对象集合)
console.log( game.selectedIndex );// 显示 0(选中项的索引值)
</script>
</body>
HTMLOptionElement对象
-
index属性
- 获取当前列表项的索引值
-
selected属性
- 判断当前列表项是否被选中
-
text属性
- 获取当前列表项的文本内容
-
value属性
- 当前列表项的value属性值
<body>
<form action="#">
<select id="game">
<option id="lr" value="lr">怪物猎人</option>
<option value="td">天涯明月刀</option>
<option value="sm">使命召唤</option>
</select>
</form>
<script>
/* 定位指定表单组件 */
var lieren = document.getElementById( 'lr' );
console.log( lieren.index );// 显示 0(当前列表项的索引值)
console.log( lieren.selected );// 显示 true(当前列表项是否被选中)
console.log( lieren.text );// 显示 怪物猎人(当前列表项的文本内容)
console.log( lieren.value );// 显示 lr(当前列表项的value属性值)
</script>
</body>
提交表单
submit事件
- 表单在进行提交时会触发submit事件
- 该事件会在表单被提交之前,实现对表单的验证
<body>
<form action="#">
<input type="text" id="kuang">
<input type="submit">
</form>
<script>
var form = document.forms[0];
form.addEventListener('submit',function(event){
// 实现表单验证
var kuang = document.getElementById('kuang');
var kuangValue = kuang.value;
if (kuangValue === '' || kuangValue === undefined || kuangValue === null) {
console.log('xxxxxx');
// 阻止默认行为
event.preventDefault();
}
});
</script>
</body>
submit()方法
-
该方法可用于提交表单
- 可以使用任何一个按钮进行表单提交(不需要提交按钮)
<body>
<form action="#">
<input type="text" id=kuang">
<input id="btn" type="button" value="提交">
</form>
<script>
var btn = document.getElementById('btn');
btn.addEventListener('click',function(){
var form = document.forms[0];
form.submit();
});
</script>
</body>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。