Ir para conteúdo

POWERED BY:

Arquivado

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

MacX

Forms com javascript

Recommended Posts

Pessoal, tenho em html um form com um select dentro, quando seleciono uma opcao do select, preciso que este mude um valor de outro select que esta em outro formulario, até ai barbada, problema é como fazer isso sem recarregar a página, tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, tenho isso aqui, veja se te ajuda:

 

<script>

 

Fabricantes = new Array();

Modelos = new Array();

Versao = new Array();

cbFab = null; tpFab = 0;

cbMod = null; tpMod = 0;

cbVer = null; tpVer = 0;

function comboGenerico(nome, nmCb, nmTp, tp, onChange, onPreenche, teste) {

document.write('<select name="' + nome + '" onChange="' + onChange +'"> <option>12345678901234567890</option>');

for (var i=1; i< 10;i++)

document.write('<option>f</option>');

document.writeln('</select><span style="DISPLAY: none"><SELECT name="' + nome + '$" SIZE=1><OPTION name="' + nome +'$" value="ÿ" target="_new"></SELECT></span>');

var cb = eval(nmCb + '=document.forms[document.forms.length - 1].' + nome);

var val = leCombo(cb, eval(nmTp + '=tp'));

eval(onPreenche);

selecionaCombo(cb, val);

gravaCombo(cb);

return cb;

}

function gravaCombo(cb) {

eval('if (typeof(document.' + cb.form.name + '.' + cb.name +

'$) == "object") document.' + cb.form.name + '.' + cb.name +

'$.value = cb.value');

}

function leCombo(cb, def) {

return eval('(document.' + cb.form.name + '.' + cb.name +

'$.value == "ÿ") ? def : document.' + cb.form.name + '.' + cb.name +

'$.value');

}

function comboFabricante(nm, tp) {

comboGenerico(nm, 'cbFab', 'tpFab', tp, 'gravaCombo(cbFab);preencheModelo()',

'preencheFabricante()');

}

function comboModelo(nm, tp) {

comboGenerico(nm, 'cbMod', 'tpMod', tp, 'gravaCombo(cbMod)',

'preencheModelo()');

}

function comboVersao(nm, tp) {

comboGenerico(nm, 'cbVer', 'tpVer', tp, 'gravaCombo(cbVer)');

}

function VeiItem(cd,nm) {

this.cd = cd; this.nm = nm;

this.sub = new Array();

}

function F(cdFab,nmFab) {

Fabricantes[Fabricantes.length] = new VeiItem(cdFab,nmFab);

}

function M(cdFab,cdMod,nmMod) {

var mod = new VeiItem(cdMod,nmMod);

for (var i=0; i < Fabricantes.length; i++)

if (Fabricantes.cd == cdFab)

Fabricantes.sub[Fabricantes.sub.length] = mod;

Modelos[Modelos.length] = mod;

}

 

function preencheInicio(cb, tp) {

var pos = 0;

for (var i= cb.length - 1; i >= 0; i--)

cb.options = null;

if (tp == -1)

cb.options[pos++] = new Option('Todos', -1);

else

cb.options[pos++] = new Option('', -1);

return pos;

}

function selecionaCombo(cb, vl) {

cb.selectedIndex = 0;

for (var i=0; i< cb.length; i++)

if (cb.options.value == vl)

cb.selectedIndex = i;

}

function preencheFabricante() {

var pos = preencheInicio(cbFab, tpFab);

for (var i=0; i< Fabricantes.length; i++)

cbFab.options[pos++] = new Option(Fabricantes.nm, Fabricantes.cd);

selecionaCombo(cbFab, tpFab);

gravaCombo(cbFab);

preencheModelo();

}

function preencheModelo() {

if (cbMod != null && typeof(cbMod) == 'object') {

var mods, pos = preencheInicio(cbMod, tpMod);

var cdFab = cbFab.options[cbFab.selectedIndex].value;

if (cdFab != -1 && cdFab != 0) {

for (var i=0; i < Fabricantes.length; i++)

if (Fabricantes.cd == cdFab)

mods = Fabricantes.sub;

for (var i=0; i< mods.length; i++)

cbMod.options[pos++] = new Option(mods.nm, mods.cd);

}

selecionaCombo(cbMod, tpMod);

gravaCombo(cbMod);

}

}

/* Opções que aparecem no primeiro menu */

F( 001, "São Paulo");

F( 002, "Parana");

 

 

/* Opções que abrirá depois que for selecionado algum item do primeiro menu */

M( 001, "barretos.htm", "Barretos");

M( 001, "sao_jose.htm", "São José dos Campos");

 

M( 002, "curitiba.htm", "Curitiba");

M( 002, "londrina.htm", "Londrina");

 

</script>

 

Seleciona o estado e aparece cidade embaixo, no outro combo.

<FORM name="form2">

Campo 1:<br>

<script>

comboFabricante("fabricante",0);

</script><br><br>

Sub Campo:<br>

 

<script>comboModelo("modelo",0);</script>

 

<script>

document.writeln('<FORM NAME="myindex"><INPUT TYPE="BUTTON" VALUE="OK" onClick="goTo(this.form)">')

</script>

</form>

<script language="JavaScript">

<!--

function goTo(form) {

var myindex=form.modelo.selectedIndex

window.open(form.modelo.options[myindex].value);

}

//-->

</script>

Um abraço http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.