Ir para conteúdo
Fórum Script Brasil

fiote

Membros
  • Total de itens

    563
  • Registro em

  • Última visita

Posts postados por fiote

  1. Tenta assim:

    function materia(nome, n1, n2, n3, n4) {     
        var $tbody = $('.live');
      var $tr = $('<tr>').attr('id',nome).appendTo($tbody);
      $('<td>').html(nome).appendTo($tr);
      $('<td>').html(n1).appendTo($tr);
      $('<td>').html(n2).appendTo($tr);
      $('<td>').html(n3).appendTo($tr);
      $('<td>').html(n4).appendTo($tr);
      
      var total = parseFloat(n1)+parseFloat(n2)+parseFloat(n3)+parseFloat(n4);
      var media = total/4;
      $('<td>').html(media).appendTo($tr);
      
      if (media > 7) {
          var situacao = 'Aprovado';
      } else if (media > 3) {
          var situacao = 'Prova Final';
      } else {
          var situacao = 'Reprovado';
      }
      $('<td>').html(situacao).appendTo($tr);
    };

    $(window).ready(function() {
        materia('Artes', '6.0', '6.0', '6.0', '5.5');
        materia('História', '6.0', '6.0', '6.0', '5.5'); 
    });

    https://jsfiddle.net/xc1cw7jz/

  2. Não perdi meu tempo escrevendo. Estava te parabenizando (sem sarcasmo), mas aparentemente você não gostou. Me desculpe, não tive a intenção de "falar o óbvio"! (novamente, sem sarcasmo)

    Não postei nada porque não sabia como ajudar e/ou não tive tempo de olhar seu post. Dá uma olhada nesse board, as últimas mensagens de ajuda foram quase todas minhas lol. Faço o possível para ajudar quem eu posso :)

  3. Guilhe,

    1) Você está pegando o valor do emprestimo (tipo 15.500,32) e tentando dar um parseFloat nele... a idéia é boa, mas o resultado é zuado. Se você der parseFloat em 15.500,32 o resultado vai ser 15.500 (quinze e meio, e não quinze mil e quinhentos).

    Então logo dessa linha aqui:

    // aqui pego o valor primeiro campo input  
    var emprestimo = document.form_soma.valcontrato.value;

    Adicione essa daqui:

    // convertendo o valor do emprestimo de volta para número
    emprestimo = emprestimo.replace(/[.]/g,"").replace(/[,]/g,".");

    2) Você está usando uma função MascaraMoeda para formatar o campo, mas ela só está sendo chamada no onkeyPress do campo valcontrato. Por isso o resultado do cálculo não fica formatado.

    Pra resolver isso, vá nessa linha aqui do seu código:

    // mostro o resultado 
    document.form_soma.resultado.value = resultado; 

    E mude para:

    // mostro o resultado
    document.form_soma.resultado.value = resultado.toFixed(2); 
    MascaraMoeda(document.form_soma.resultado, '.', ',');

    O toFixed(2) é necessário porque essa função MascaraMoeda não entende mais de duas casas decimais, e sua conta gerava valores tipo 254.412315232.

    3) Porém, a função MascaraMoeda espera um 4º parâmetro (que não existe aqui), então vamos ter que alterá-la:

    Vá nessas linhas da função:

    var whichCode = (window.Event) ? e.which : e.keyCode; 
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave 
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida 

    E mude o código para:

    if (e) {
        var whichCode = (window.Event) ? e.which : e.keyCode; 
        if (whichCode == 13) return true;
        key = String.fromCharCode(whichCode); // Valor para o código da Chave 
        if (strCheck.indexOf(key) == -1) return false; // Chave inválida 
    }

    Espero que você tenta entendido o que eu quis dizer. Se não entender (por favor, pelo menos tente fazer, lol), fiz um fiddle pra você.

    ;)

  4. só queria um jeito mais fácil para eu poder modificar os nomes das pessoas que trocam de ramais para evitar ter que ficar abrindo o arquivo html em um editor e alterá-lo diretamente na página.

    Existem formas ótimas de você fazer isso, mas infelizmente você só vai aprender mais pra frente então ;)

    Boa sorte e qualquer coisa estamos aqui ;)

  5. Pra pegar o valor do select, é só fazer variavel = document.getElementById('id_do_seu_select').value;

    Aí digamos que você tenha 3 selects e quer colocar o valor deles num outro input:

    v1 = document.getElementById('id_do_select_1').value;
    v2 = document.getElementById('id_do_select_2').value;
    v3 = document.getElementById('id_do_select_3').value;
    
    document.getElementById('id_do_outro_input').value = v1 + ',' + v2 +',' + v3;
  6. Outra dica:

    var to = new Date();
    var from = new Date(to.getTime() - 1000 * 60 * 60 * 24 * 14);
    ...
      date: [from, to]

    Date() sem parâmetros retorna a data atual.

    var to = new Date(); // Thu Jul 24 2014 15:47:59 GMT-0300 (Hora oficial do Brasil)

    Date() com parâmetros deixa você setar qual data você quer.

    var from = new Date(to.getTime() - 1000 * 60 * 60 * 24 * 14);

    to.getTime() retorna a quantidade de milesegundos desde 1970 até a data que está dentro daquela variável (no nosso caso a data atual), se não me engano.

    Fazer from = new Date(to.getDate()) seria basicamente criar outra variável com a mesma data.

    new Date(to.getTime() - 1000) é a data contida em to menos 1000 milesegundos. Isto é, 1 segundo no passado.

    new Date(to.getTime() - 1000 * 60) é a data contida em to menos 60000 milesegundos = 60 segundos = 1 minuto no passado.

    -1000 * 60 * 60 = 60 minutos = 1 hora

    *24 = 24 horas = 1 dia

    *14 = 14 dias no passado.

    Isso quer dizer que o seu calendário aparentemente está limitado ao intervalo "-14 dias" até "Hoje".

    Se você quer "habilitar as datas subsequentes", basta você alterar esses valores. Da mesma forma que o você está voltando no tempo ao subtrair números do from, você pode avançar no tempo adicionando números ao to. Tipo assim:

    var agora = new Date();
    var from = new Date(agora.toTime() - 1000 * 60 * 60 * 24 * 365); // um ano no passado
    var to new Date(agora.toTime() + 1000 * 60 * 60 * 24 * 365); // um ano no futuro

    ;)

  7. Não coloque as funções no html. Isso é uma prática ruim.

    Tira o onkeyup do input e tenta assim:

    // coloque seu <echo> aqui.
    ac_array = new Array('Ailton José', 'José dos Reis');
    
    
    window.onload = function() {
      document.getElementById('nomealuno').onkeyup = function(event) {
        var n = this;
        if (n.value == "") return 0;
        if (event.keyCode == 8 && n.backspace) {
          n.value = n.value.substr(0, n.value.length - 1);
          n.backspace = false;
        }
        var r = n.createTextRange();
        tmp = n.value;
        if (tmp == "") return 0;
        for (z = 0; z < ac_array.length; z++) {
          tmp2 = ac_array[z];
          count = 0;
          for (i = 0; i < tmp.length; i++) {
            if (tmp2.charAt(i) == tmp.charAt(i)) {
              count++
            }
          }
          if (count == tmp.length) {
            diff = tmp2.length - tmp.length;
            if (diff <= 0) break;
            kap = "";
            for (i = 0; i < tmp2.length; i++) {
              if (i >= tmp.length) kap += tmp2.charAt(i);
            }
            n.backspace = true;
            r.text += kap;
            r.findText(kap, diff * -2);
            r.select();
            return 0;
          }
        }
        n.backspace = false;
        return 0;
      };
    };

    E outra coisa importante: Não sei quem te ensinou a usar esse createTextRange, mas ele só funciona no internet explorer.

×
×
  • Criar Novo...