1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em HTML e Javascript

Discussão em 'Web Development' iniciada por rycardu, 12 de Julho de 2008. (Respostas: 11; Visualizações: 1687)

  1. rycardu

    rycardu Power Member

    Boas pessoal, estou aqui com dois problemas que não consigo solucionar, se alguém me puder ajudar :009:

    1º Tenho duas text box e quero que quando escrevo um valor numa, esse valor apareça automaticamente na outra.

    Código:
    <input id="valororiginal" value="" size="3" name="T1" />
    <input id="valorcopiado" value="" size="3" name="T2" />
    2º Tenho um script que permite que o utilizador insira um endereço web de um ficheiro xml (http://abc.xml) e visualize a informação desse ficheiro, só que eu queria que o utilizador também pudesse carregar ficheiros xml do seu pc (c:/abc.xml) e não consigo :(
     
    Última edição pelo moderador: 12 de Julho de 2008
  2. m.costa

    m.costa Power Member


    Código:
    <input id="valororiginal" value="" size="3" name="T1" onkeyup="document.getElementById('valorcopiado').value = this.value" />
    <input id="valorcopiado" value="" size="3" name="T2" />

    Precisas de por um formulario para fazer upload do ficheiro, e a nivel do servidor usas a linguagem que quiseres (PHP etc) para ler os conteúdos do ficheiro e mostrar ao utilizador
     
  3. rycardu

    rycardu Power Member

    Obrigado m.costa, resolvi o meu problema :D

    Olha, entretanto surgiu-me uma dúvida, é o seguinte, se eu tiver uma chekbox do tipo

    <input type="checkbox" id="blueCheckbox" onclick="funcao()" CHECKED name="C4" value="ON" />

    e quiser que ela fique checked quando clico num botão do tipo:

    <input type="button" value="ver" onClick="verfunc();" name="m3"/>

    como faço?

    Outro problema que tenho e não consigo resolver é quando o user insere num formulário um URL, eu poder confirmar se esse URL existe ou não. Há alguma função que o faça?


    Mais uma vez obrigado pela ajuda.
     
  4. m.costa

    m.costa Power Member

    Para activares a checkbox usa este javascript:
    Código:
    document.getElementById('blueCheckbox').checked = true
    Não vai executar o javascript que tenhas no onClick da checkbox que estas a activar, por isso se queres que seja executado na mesma vais ter de o chamar depois de usares o que escrevi em cima.

    Para confirmares se o URL existe ou não tens de usar PHP ou outra linguagem de servidor (javascript so' te permite acesso local), suponho que algo deste genero:
    PHP:
    $c = @fopen("http://www.site-a-testar.com/","r");
    if (!
    $c) echo "nao existe"; else echo "existe";
     
  5. rycardu

    rycardu Power Member

    Obrigadão m.costa, nem sabes o quão útil tem sido a tua ajuda.
    Não querendo abusar da tua paciência gostava de te perguntar só mais duas perguntas

    1- Como verifico se numa text box se o valor introduzido é um número inteiro positivo e se essa text box está a null?

    <input id="IDADE" value="100" size="1" name="T6"/><font size="2">anos</font></td>


    2- Há alguma função que faça de preloaded em javascript? Do tipo, quero que enquanto são carregadas marcas num mapa, apareça um preloaded ou imagem de aviso a dizer que está a processar.

    Mais uma vez obrigado pela tua disponibilidade e paciência :)
     
  6. m.costa

    m.costa Power Member

    Estamos ca' para ajudar ;)

    1º - Isso fazes um check com javascript (convem associa-lo a um botao), tipo:

    Código:
    <script language="JavaScript">
    
    function verificar() {
    	
    	var val = document.getElementById('IDADE').value;
    	
    	if (eVazio(val)) return 'campo vazio';
    	if (!eNum(val)) return 'nao e um numero';
    	if (eNum(val))
    		if (parseInt(val) > 0)
    			return 'numero positivo';
    		else
    			return 'numero negativo';
    		
    }
    
    function eNum(v) { return (!isNaN(v)); }
    function eVazio(v) { return (v == ""); }
    
    </script>
    
    E tomas a acção apropriada baseado na resposta do verificar();

    2º - Não ha' uma função per se, mas e' possivel, tens aqui vários exemplos -> http://www.google.pt/search?hl=pt-PT&q=javascript+preloader - o primeiro por exemplo deve fazer o que precisas, e' so' adaptar
     
  7. rycardu

    rycardu Power Member

    Mais uma vez muito obrigado pela resposta, nem sabes o quão útil tem sido a tua ajuda.

    Só aqui mais uma duvida, a última :), é assim eu estou a usar matrizes, e quando devolvo a matriz e a vou buscar noutra função, da-me erro.


    function create_matriz(){
    var matriz = new Array(5);
    matriz[y] = new Array(2);
    matriz[0][0] = 18;
    matriz[0][1] = ana;
    matriz[1][0] = 20;
    matriz[1][1] = carla;
    return matriz;
    }

    function ler_matriz(){
    matrizR = create_matriz();
    alert(matrizR[0][0]); //da-me erro neste ponto diz que '0' é nulo ou não é objecto :(
    alert(matrizR[0][1]);
    alert(matrizR[1][0]);
    alert(matrizR[1][1]);
    }


    Obrigado
     
  8. MPalhas

    MPalhas Power Member

    qual é o valor de y?

    qualquer que ele seja, só um dos indices do primeiro array é que vai ficar subdividido em dois, os restantes vão continuar unidimensionais. se o que queres é criar um array 5x2 poderá ser assim:

    Código:
    array= new Array(5);
    for (i=0; i<5; i++) {
       array[i]=new Array(2);
    }
     
  9. rycardu

    rycardu Power Member

    Obrigado pela tua pronta resposta, o valor de Y é dois.
    Não entendo mesmo o que se passa com isto :(

    Para ser mais fácil de perceber, meti o o código simplificado on-line, caso possas dar uma olhadela, o problema passa-se com as duas últimas funções, carregarMapa() e carregarMatriz(), a primeira chama a segunda, que por sua vez devolve uma matriz para a primeira. O problema é que não está a devolver correctamente :(

    está neste site o código: ccrvilafacaia.com.sapo.pt/proj/teste.htm


    Agradeço muito a tua ajuda ;)
     
  10. MPalhas

    MPalhas Power Member

    passa-se o que eu já te disse. repara:

    Código:
    function create_matriz(){
        var matriz = new Array(5);
    
    até este ponto ficas com um array unidimensional, tipo isto:

    [0]
    [1]
    [2]
    [3]
    [4]

    a seguir fazes
    Código:
        matriz[y] = new Array(2);
    e aqui, estás apenas a dizer que o indice y (2 pelo que disseste) vai ser também ele um array, ou seja, passas a ter isto

    [0]
    [1]
    [2][0]
    [2][1]
    [3]
    [4]

    porque só o indice 2 é que é afectado

    após isso a função retorna a matriz, e tentas usá-la num ciclo

    Código:
    matriz1 = carregarMatriz(layers[id].url, id, variavel_med);var compr1 = matriz1.length;
    for (var i=0; i<compr1; i++){
    var point = new GLatLng(matriz1[i][1],matriz1[i][0]);
    var marker = new GMarker(point);
     marca[y] = marker;
    y++;
    map.addOverlay(marker);
    }
    
    só que nesse ciclo estás a assumir que todos os indices são bidimensionais, o que não é o caso (nas outras linguagens de programação isto não é possivel, mas em javascript e PHP os arrays funcionam de forma diferente)
    assim, logo no inicio do ciclo, tentas aceder á posição [0][1], que como podes ver no esquema que fiz, não existe.

    para criar um array bidimensional como pelos vistos queres, fazes com o código que eu dei no post anterior
     
  11. rycardu

    rycardu Power Member

    Obrigado pela ajuda, tens razão, já consegui resolver o problema. Depois também estava com um problema de sincronismo, tive de criar outra função para carregar os ficheiros xml, porque a que tinha não me garantia sincronismo entre a leitura do ficheiro e a escrita na matriz.

    Agora só estou com um problema de compatibilidade com o firefox, quando quero ler o valor de uma combobox, o firefox da-me erro, mas i IE7 funciona bem. A função é esta:

    var meu_select= document.getElementById("variavel");
    variavel_med = (variavel.options[variavel.selectedIndex].text);

    E a combobox é esta:

    <select id="variavel" size="1" name="V1" style="background-color: #FFC1C1">
    <option>opcao1</option>
    <option>opcao2</option>
    </select>


    Tens alguma ideia para este problema?
    Mais uma vez obrigado por tudo.
    Eu prometo que te pago um almoço :009:
     
  12. MPalhas

    MPalhas Power Member

    já reparaste bem no que tens?:P

    Código:
    var meu_select= document.getElementById("variavel");
                variavel_med = (variavel.options[variavel.selectedIndex].text);
    recebes o objecto para a variavel meu_select, mas na instrução seguinte, em vez de usares essa variave, usas o ID do objecto:P

    corrigido

    Código:
    var meu_select= document.getElementById("variavel");
                 variavel_med = (meu_select.options[variavel.selectedIndex].text);
     

Partilhar esta Página