Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovisk

Prompt para Inserir no Combo

Recommended Posts

Turma,

 

Eu estou querendo ter em minha página, quando for para adicionar um novo registro em um combobox, um campo chamado NOVO onde ao selecionar esta opção, surja um Prompt no qual o usuário possa digitar o novo item e automaticamente exiba no combo, mas sem adicionar ainda no bd.

Quando eu clicar no Submit deste form, aí quero que este novo item seja adicionado no bd (já tenho isto em ASP). Estou imaginando que esta informação estará armazenada em um campo hidden.

 

Abaixo, está uma imagem de um exemplo que utiliza este prompt.

 

http://www.screencast.com/t/vs4PdgVRH

 

Outro exemplo muito parecido é o que utilizamos quando inserimos um link neste campo do novo tópico do forum.

 

Encontrei um exemplo e tentei ajustar no combo, mas ele não insere a informação do prompt. Como o exemplo está com textarea, funcionou.

 

<script language="JavaScript" type="text/JavaScript">
function Escrever() {
	var valorPrompt = prompt("Digite um valor", null);
	var Conteudo = document.Teste.Texto.value;
	document.Teste.Texto.value = valorPrompt;
}
</script>

Para o que estou querendo, preciso que:

 

1 - No combo, o usuário tenha uma opção NOVO;

2 - Ao selecionar NOVO, abra um Prompt para o usuário inserir o novo item para o combo;

3 - Para finalizar, no Submit este NOVO valor seja inserido junto com os demias itens do form.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que você quer algo como:

<html>
	<head>
		<title></title>
		<script>
			function preencheSelect(selectName){
				var i = 0;
				var a = new Array();
				var select = document.getElementsByName(selectName)[0];
				while(1 == 1){
					a[i] = prompt("Digite um item (sair) para sair");
					if(a[i] == 'sair') break;
					var option = document.createElement("option");
					option.setAttribute("value", a[i]);
					option.appendChild(document.createTextNode(a[i]));
					select.appendChild(option);
					i++;
				}
			}
		</script>
	</head>
	<body bgcolor="#999999" onLoad="preencheSelect('s1');">
		<select name="s1">
			<option selected="selected">Selecione</option>
		</select>
	</body>
</html>

Para mandar prum script server-side fazer a persistência dos dados,você coloca o select em um form que tem sua action apontada para o script server-side,e o mesmo method da mesma.O resto,é trabalho do script server-side.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eibon,

 

Muito bom este exempl. Mas esse meu combo ele já vem populado por um recordset. Ele deverá ter uma opção, no topo das opções, chamada NOVO.

O que eu quero que o prompt seja exibido apenas no momento em que o usuário clicar na opção NOVO e não no Onload.

Daí, digite o item e que o mesmo volte para o campo com o item recem digitado.

 

Muito obrigado pela ajuda.

 

Abraço,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi um exemplo.A partir dele você é capaz de executar o que quer.

Mas...eis:

<html>
	<head>
		<title></title>
		<script>
			function preencheSelect(selectName){
				var i = 0;
				var a = new Array();
				var select = document.getElementsByName(selectName)[0];
				while(1 == 1){
					a[i] = prompt("Digite um item (sair) para sair");
					if(a[i] == 'sair'){
						var len = select.childNodes.length-3;
						select.selectedIndex = len;
						break;
					}
					var option = document.createElement("option");
					option.setAttribute("value", a[i]);
					option.appendChild(document.createTextNode(a[i]));
					select.appendChild(option);
					i++;
				}
			}
		</script>
	</head>
	<body bgcolor="#999999">
		Select:
		<select name="s1">
			<option selected="selected">Selecione</option>
		</select>
		<input type="button" onClick="preencheSelect('s1');" value="Novo" />
	</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eibon,

 

Resolvi fazer conforme abaixo:

 

<select name="s1" id="s1">
		<option selected="selected" value="">Selecione</option>
		<option value="Novo" onChange="preencheSelect('s1');">Novo</option>
		<%
While (NOT rs.EOF)
%>
		<option value="<%=(rs.Fields.Item("IDPax").Value)%>"><%=(rs.Fields.Item("NomePax").Value)%></option>
		<%
  rs.MoveNext()
Wend
If (rs.CursorType > 0) Then
  rs.MoveFirst
Else
  rs.Requery
End If
%>
	  </select>

 

Mas quando eu seleciono a opção Novo no combo, o prompt não abre. você sabe dizer onde está o pro?

 

Obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tbm já utilizei este evento, mas não tem ação alguma.

Não abre o prompt.

Tentei com outros eventos e nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.