如何提交表单中disabled表单域的值示例代码

当前位置 : 首页 > 网页制作 > 心得技巧 > 如何提交表单中disabled表单域的值示例代码

如何提交表单中disabled表单域的值示例代码

来源:互联网 作者:脚本宝典 时间:2015-09-01 18:49
如果表单中的某个表单域被设定为disabled,则该表单域的值就不会被提交。但是有的时候确实需要提交这个值。 解决方案有很多,比如不用disabled而是使用readonly等,但是我认为都并不是

如果表单中的某个表单域被设定为disabled,则该表单域的值就不会被提交。但是有的时候确实需要提交这个值。 
解决方案有很多,比如不用disabled而是使用readonly等,但是我认为都并不是很好(具体原因略)。 

我想到一种方案,就是在提交之前,把要提交的表单复制一份,然后把复制后的表单中的所有表单域的disabled属性都置为false,然后提交这个复制后的表单。下面是演示用的代码(将代码保存到一个名为submit.html的文件中即可观察演示效果)。 

复制代码

代码如下:


<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=shift-jis"> 
<title> 
Submit form 
</title> 
<script> 
function doSubmit(form) { 
var newForm = form.cloneNode(true); 
enableFields(newForm.getElementsByTagName("input")); 
enableFields(newForm.getElementsByTagName("textarea")); 
enableFields(newForm.getElementsByTagName("select")); 
newForm.style.display = "none"; 
document.body.appendChild(newForm); 
newForm.submit(); 

function enableFields(fields) { 
for(var i=0;i<fields.length;i++) { 
var field = fields[i]; 
if (field instanceof(Array)) { 
for (var j=0;j<field.length;j++) { 
field[j].disabled = false; 

} else { 
field.disabled = false; 



</script> 
</head> 
<body> 
<form action="submit.html"> 
<input type="text" name="text" value="tt" disabled/>

<input type="radio" name="radio" value="r1" checked disabled>r1 
<input type="radio" name="radio" value="r2">r2

<input type="checkbox" name="checkbox" value="c1">c1 
<input type="checkbox" name="checkbox" value="c2" checked disabled>c2

<select name="select" disabled> 
<option value="1">1</option> 
<option value="2">2</option> 
</select>

<textarea name="textarea" disabled>123</textarea>

<input type="button" value="submit" onclick="doSubmit(this.form)"> 
</form> 
</body> 


Tag:
网友评论

<