我有一个表单,该表单通过ajax提交值并正常工作,但是我还需要给用户提供选项,以将表格重置为默认值,以防其犯错。
默认值存储在javaScript变量中,为JSON对象
{"field_name1":"2","field_name3":"3","field_name3":"1000"...
我遇到的问题是该表格具有多种输入类型,TextArea,Select,Radio而且我需要根据对象键弄清楚它们是什么,寻找名称和返回类型,因此我可以做类似的事情,例如检查了已检查的广播集,依此类推
我尝试了
Object.each(dafaultValues, function(value, key){
var filed_name = MyForm.elements[''+key+''];
console.log(filed_name.type);
});
问题是无线电类型具有相同的名称,但ID的
不同<input type="radio" name="field_name5" id="field_name51" value="1">
<input type="radio" name="field_name5" id="field_name52" value="1" checked="checked">
我和js error
结束undureck typeerror:无法读取未定义的属性'类型'
那么,在我可以做之前,找出输入类型是什么是什么最好的方法
if(field.type ='radio'){
//set checked checked..
}
查看此示例。我只是把它放在一起很脏,但是你会得到这个主意;)
html:
<form id="test">
<input type="radio" name="abc" value="1"/>
<input type="radio" name="abc" value="2"/>
<input type="radio" name="abc" value="3"/>
<input type="text" name="def" value="change" />
</form>
JS:
var values = {
'abc': '2',
'def': 'original'
};
var els = $('test').getElements('[name="abc"], input');
els.each(function(el) {
var defaultVal = values[el.get('name')],
type = el.get('type');
if (typeof defaultVal != 'undefined') {
return;
}
if (type == "radio") {
if (el.get('value') == defaultVal) {
el.set('checked', 'checked');
} else {
el.erase('checked');
}
}
if (type == "text") {
el.set('value', defaultVal);
}
});