Показать сообщение отдельно
  #6 (permalink)  
Старый 27.09.2010, 11:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

function getSlc не проверок на наличие параметра при его добавлении кроме как if(slcParam.sFunct != undefined)
ещё мелочь )))
newCell.innerHTML = '&nbsp'+field2R.val[i]+'&nbsp';
надо
newCell.innerHTML = ' '+field2R.val[i]+' ';
и вариант может чем поможет )))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>

<body>
<table id="tb" border="1">
  <tr>
    <td>1</td>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
    <td>4</td>
  </tr>
</table>
<script language="JavaScript" type="text/javascript">
function getSlc(c) {
    var b = document.createElement("SELECT");
    if(c.id)b.id = c.id;
    if(c.name)b.name = c.name;
    if(c.options){for (var d = c.options.length, a = 0; a < d; a++) {
        b.options.length = a + 1;
        b.options[a].text = c.options[a][0];
        b.options[a].value = c.options[a][1];
        if (c.options[a][2]) b.options[a].isDefaultSelected = true;
        if (c.options[a][3]) b.options[a].selected = true
    }};
    if (c.onchange&&typeof c.onchange == "function") b.onchange = c.onchange;
    return b
};
//var slcParam ={id:'h3',name:'h3',options:[["Строка 1", 1],["Строка  2", 2],["Строка  3", 3,1,1]],onchange:function (){alert(this.value);}}
//document.body.appendChild(getSlc(slcParam))

function  getFFOptionsRow(table,i,field2R){
	var tablePreffiks = 'FF';
	var newRow = table.insertRow(-1);										//добавляем строку в созданной таблице
		newRow.className = 'tableData';
		newRow.id        = tablePreffiks+'tableData_'+field2R.key[i];
		//имя поля
		var newCell = newRow.insertCell(-1);								//в созданной строке добавляем столбец
			newCell.align     = 'right';									//указываем позиционирование по центру
			newCell.innerHTML = '&nbsp;'+field2R.val[i]+'&nbsp;';
		//тип фильтра
		var newCell = newRow.insertCell(-1);								//в созданной строке добавляем столбец
			newCell.align     = 'center';									//указываем позиционирование по центру
				var slcParam = {
									id    : 'field_'+field2R.key[i]+'_filter_type_slc',
									name  : 'field_'+field2R.key[i]+'_filter_type',
                                    onchange : function (){alert(this.name);},
                                    options:[["Строка 1", 1],["Строка  2", 2],["Строка  3", 3,1,1]]
								};
				var slc  = getSlc(slcParam);
				newCell.appendChild(slc);
}
var t= document.getElementById('tb');
var field2R={key:[1,2,3],val:[4,5,6]};
getFFOptionsRow(t,1,field2R)
</script>
</body>
</html>
Ответить с цитированием