纯JS回显form各种表单数据

获取和设定表单数据有各种方法,比如借助DWR,JQuery等JS库或者框架等。

下面通过原生的JS代码来实现。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>表单数据的回显</title>
<script type="text/javascript">
function show(){
	//姓名
	var name=document.getElementById("name").value;
	document.getElementById("name2").value=name;
	//性别
	var genders=document.getElementsByName("gender");
	//var genders=document.testform.gender;//这样取值也可以
	var checkedgender;
	for(var i=0;i<genders.length;i++){
		if(genders[i].checked){
			checkedgender=genders[i].value;
			break;
		}
	}
	var genders2=document.getElementsByName("gender2");
	for(var i=0;i<genders2.length;i++){
		if(checkedgender==genders2[i].value){
			genders2[i].checked=true;
			break;
		}
	}
	//学历
	var xue=document.getElementById("select").options;
	var checkedxue;
	for(var i=0;i<xue.length;i++){
		if(xue[i].selected){
			checkedxue=xue[i].value;
			break;
		}
	}
	var xue2=document.getElementById("select2").options;
	for(var i=0;i<xue2.length;i++){
		if(checkedxue==xue2[i].value){
			xue2[i].selected=true;
			break;
		}
	}
	//技能
	var its=document.getElementsByName("it");
	var checkedit=new Array();
	for(var i=0;i<its.length;i++){
		if(its[i].checked){
			checkedit.push(its[i].value);
		}
	}
	var its2=document.getElementsByName("it2");
	for(var i=0;i<its2.length;i++){
		if(checkedit.length==0){
			its2[i].checked=false;
		}else{
			for(var j=0;j<checkedit.length;j++){
				if(checkedit[j]==its2[i].value){
					its2[i].checked=true;
					break;
				}else{
					its2[i].checked=false;//必须设为false,否则重新选择后,还会处于选中状态
				}
			}
		}
	}
	//自我介绍
	var text=document.getElementById("intro").value;
	document.getElementById("intro2").value=text;
}

</script>
</head>
<body>

<form name="testform">
姓名:<input type="text" name="name" id="name" value="hello"/><br/>
性别:<input type="radio" name="gender" value="man" checked/>男
    <input type="radio" name="gender" value="woman"/>女
    <input type="radio" name="gender" value="secret"/>保密<br/>
学历:<select id="select">
	    <option value="college">专科</option>
	    <option value="bachelor" selected>本科</option>
	    <option value="master">硕士</option>
	    <option value="doctor">博士</option>
   </select><br/>
技能:<input type="checkbox" name="it" value="java"/>java
<input type="checkbox" name="it" value="c" checked/>C
<input type="checkbox" name="it" value="php"/>php
<input type="checkbox" name="it" value="linux" checked/>linux
<br/>
自我介绍:<br/>
<textarea rows="4" cols="20" id="intro">
hi,大家好
</textarea>
<br/>
<input type="reset" value="重置"/>
<input type="button" value="数据回显" οnclick="show()"/>
</form>

<hr>
姓名:<input type="text" name="name" id="name2" /><br/>
性别:<input type="radio" name="gender2" value="man"/>男
    <input type="radio" name="gender2" value="woman"/>女
    <input type="radio" name="gender2" value="secret"/>保密<br/>
学历:<select id="select2">
	    <option value="college">专科</option>
	    <option value="bachelor">本科</option>
	    <option value="master">硕士</option>
	    <option value="doctor">博士</option>
   </select><br/>
技能:<input type="checkbox" name="it2" value="java"/>java
<input type="checkbox" name="it2" value="c"/>C
<input type="checkbox" name="it2" value="php"/>php
<input type="checkbox" name="it2" value="linux"/>linux
<br/>
自我介绍:<br/>
<textarea rows="4" cols="20" id="intro2"></textarea>
<br/>
</body>
</html>

效果图如下:


注意点:除下拉选择框选中用 selected 属性判断外,单选框,复选框都是用 checked 进行判断的。复选框取值时用到了Array对象的push方法。

经测试,IE,firefox,chrome下均通过。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要实现el-form表单数据回显,可以使用v-model指令将表单的值与数据对象进行双向绑定。在获取到需要回显数据后,将数据对象的属性值设置为需要回显的值,表单会自动更新显示。如果遇到无法回显的情况,可能是因为在修改数据后没有正确地重置表单的值。可以使用resetFields方法来重置表单的值,确保表单重新渲染时使用的是初始值。另外,还需要注意在修改数据后,确保DOM更新完成后再进行重置操作,以避免异步更新导致的问题。\[2\]\[3\] #### 引用[.reference_title] - *1* [vue3 在弹窗使用el-form表单编辑回显问题](https://blog.csdn.net/Salange1/article/details/119382911)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [element的el-form表单数据赋值回显后无法编辑修改](https://blog.csdn.net/weixin_40765227/article/details/130194556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [解决elementUIel-form、el-dialog、数据回显同时用时,有bug](https://blog.csdn.net/qq_45532769/article/details/127591497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值