一、问题描述
在一个form表单中有一个select标签但被disable了,目的是为了不能使用此选择框但是可以显示值,select标签也没有readonly属性只有disable属性。
disable定义及用法:
disabled 属性规定禁用下拉列表。被禁用的下拉列表既不可用,也不可点击。
<select disabled="value">
问题:
当提交表单时,disabled为true的select标签中的参数不会被采集传输。表单采集的数据中压根就没有select标签中定义的name。
二、解决办法
在表单的提交的前一刻,将disabled属性移除,让其变为正常的select下拉选择框。
具体实现:
给form标签添加onsubmit事件属性。
<form action="" onsubmit="removeDisabled()">
或者 使用jQuery方式给form绑定sumbit事件:
$('#mainform').on('submit', function() {
//移除disable属性
$("#select1").prop("disabled", false);
/**
* 1.6以下版本在IE6使用JQuery的removeAttr方法删除disabled是无效的。
* 解决的方法就是使用$("XX").prop("disabled",false);
* 1.7版本在IE6下已支持删除disabled。
*/
//$("#select1").removeAttr("disabled");
});
其中还需注意的是,若想触发form的submit事件,那么必须通过type为submit或者image的时候才会触发submit事件,其他类型则不会触发。
也不能使用Form对象的submit()方法,也不会触发。