根據html元素的型別設定元素的值
阿新 • • 發佈:2018-12-18
/** * 獲取input/select/checkbox/radio的值 * @param id * @param nodeAttribute * @param Str valueStr或valueNum 不填預設valueStr */ function getFromHtml(id,nodeAttribute,Str) { if ($("#" + id).is('select')) { getSelect(id, nodeAttribute, Str); } else { var type = $("#" + id).attr("type"); if ('text' == type) { getInput(id, nodeAttribute, Str); } else if ('checkbox' == type) { getCheckBox(id, nodeAttribute, Str); } else { $("input[type=radio][name=" + name + "]").each(function(i, e){ type = $(this).attr("type"); }); if ('radio' == type) { getRadio(id, nodeAttribute, Str); }else{ console.error('getToHtml未支援的元素型別 $("#' + id + '").attr("type")=' + type); } } } } /** * 從表單中獲取值並設定到jobmeta的節點屬性中 * @param id * @param values * @param Str valu */ function getSelect(id,nodeAttribute,Str) { eval('nodeAttribute.'+id+'=nodeAttribute.'+id+'?nodeAttribute.'+id+':[{"valueStr":"","valueNum":0,"nr":0}]'); var v = $("#"+id).val(); Str=(!Str)?"valueStr":Str; if(v){ eval('nodeAttribute.'+id+'[0].'+Str+'=v'); } } /** * 從表單中獲取值並設定到jobmeta的節點屬性中 * * @param id * @param values * @param Str * valueStr|valueNum */ function getInput(id,nodeAttribute,Str) { eval('nodeAttribute.'+id+'=nodeAttribute.'+id+'?nodeAttribute.'+id+':[{"valueStr":"","valueNum":0,"nr":0}]'); var v = $("#"+id).val(); Str=(!Str)?"valueStr":Str; if(v!='undefined'&&v!=undefined){ eval('nodeAttribute.'+id+'[0].'+Str+'=v'); } } /** * 獲取選中的radio值 * @param name */ function getCheckedVal(name){ return $("input[name='"+name+"']:checked").val() } /**radio取值 * @param name * @param nodeAttribute * @param Str */ function getRadio(name,nodeAttribute,Str) { eval('nodeAttribute.'+id+'=nodeAttribute.'+id+'?nodeAttribute.'+id+':[{"valueStr":"","valueNum":0,"nr":0}]'); var v = $("input[name='"+name+"']:checked").val();; Str=(!Str)?"valueStr":Str; if(v){ eval('nodeAttribute.'+id+'[0].'+Str+'=v'); } } /** * 從外掛表單中獲取值然後設定到jobmeta的節點屬性中 * @param id 表單id同時也是屬性變數名,兩者要一致。 * @param nodeAttribute 節點屬性物件 */ function getCheckBox(id,nodeAttribute) { eval('nodeAttribute.'+id+'=nodeAttribute.'+id+'?nodeAttribute.'+id+':[{"valueStr":"","valueNum":0,"nr":0}]'); var v = $("#"+id).prop("checked")?'Y':'N'; eval('nodeAttribute.'+id+'[0].valueStr=v'); console.log(id,eval('nodeAttribute.'+id+'[0].valueStr')); }
獲取元素的type屬性結合eval函式進行不同的處理。