[RESOLVIDO] Adicionar <option> em um <select> - URGENTE

3 respostas
B

Bom Dia Pessoa, tudo bem??

Estou com um problemao. Estou tentando de uma POPUP, adicionar um option dentro de um select (uma lista, nao um combo).

Como funciona a aplicação: abre um popup cheio de produtos, a pessoa clica no produto e o codigo do mesmo deve ir para a pagina que abriu esta popup e se encaixar dentro de uma lista de codigos (select com size = 10).
Até ai tudo bem…

Tudo funciona, no Mozila é claro… no IE eh impossivel, nao sei o que fazer mais… alguem tem uma dica?? Vou colocar o codigo ae.

codigo da lista que deve receber da popup o codigo do produto:

<td colspan="2" valign="top">
                                <select name="selectItemList" id="selectItemList" size="10" style="width: 500;">
                                </select>
                                <br/>
                                <img src="${pageContext.request.contextPath}/admin/img/btExcluir.JPG" onClick="removeSelectedItem('selectItemList')">
                                <s:hidden id="itemList" name="itemList" value="" />
                            </td>

código js do popup (que envia para a pagina que a abriu o codigo do produto):

function setaCodigoItemPai(idItem, sDesc) {
                
                // caso a tela que abriu seja a de looks
                var txtItem = 'idItem' + '${param.ordem}';
                if (opener.document.getElementById(txtItem) != null) {
                    opener.document.getElementById(txtItem).value = idItem;
                    
                    // caso a tela que abriu seja a de listas personalizadas de produtos
                } else if (opener.document.getElementById('selectItemList') != null) {
                addSelectOption(opener.document.getElementById('selectItemList'), idItem, idItem + ' - ' + sDesc)
            }
            
            window.close();
        }
        
        /**
        * Funcao auxiliar, adiciona uma option dentro de um select
        */
        function addSelectOption(oSelect, sValue, sText) {
         
            var browser = navigator.appName;
            var myEle;
            myEle = document.createElement("option");
            myEle.value = sValue;
            myEle.text = sText;
            
            
            if (browser == "Microsoft Internet Explorer") {
                try{
                    oSelect.add(myEle);
                }catch(e){
                
                alert(e);
            }
        } else {
        oSelect.appendChild(myEle);
    }
    
}

Valeu pela ajuda pessoa!
Aguardo ae.

3 Respostas

R

amigo testei e funciona veja se serve para vc:

pagina principal:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Untitled</title>

<script language='javascript' type='text/javascript'>
	function adicionaOpcao(index, combo) {
    	var _select = document.getElementById('opcoesAdicionadas');
    	if (combo.selectedIndex>0) {
      		var valor = combo.value;
      		var op = new Option(valor, valor, false, false);
      		op.id = index;
      		_select.options[_select.options.length] = op;
        }
  }
  
  function abrePagina(){
  	window.open('pop.htm','TESTE','status=yes,scrollbars=no,width=600,height=600,resizable=no, top=0, left="0"');
  }
</script>
</head>

<body>

<select name='opcoesAdicionadas' id='opcoesAdicionadas'>
	<option>selecione uma opção</option>
</select>


<br/>
<a href='#' onclick='javascript: abrePagina();'>Abre pop-up</a>
</body>
</html>

aqui o pop-up:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
<script language='javascript' type'text/javascript'>
	function adicionaValor(){
		window.opener.adicionaOpcao(2, document.getElementById('valores'));
	}
</script>
</head>

<body>

<select name='valores' id='valores'>
	<option value='teste1'>teste1</option>
	<option value='teste2'>teste2</option>
	<option value='teste3'>teste3</option>
	<option value='teste4'>teste4</option>
	<option value='teste5'>teste5</option>
	<option value='teste6'>teste6</option>
</select>
<bR/>

<input type='button' value='adicionar' onclick='javascript: adicionaValor();'></input>

</body>
</html>

[]'s

Renan

B

Valew amigao!
Consegui fazer aqui… na verdade a unica coisa que alterei foi o local da funcao que envia para a lista o codigo. Ao inves de ficar no pop up deixei na pagina que tinha a lista…

Abraço e muito obrigado!

[Resolvido]

R

certo mano, precisando estamos ai :lol:

[]'s

REnan

Criado 11 de dezembro de 2008
Ultima resposta 12 de dez. de 2008
Respostas 3
Participantes 2