Ir para conteúdo
helkton

Ajuda com desabilitar JavaScript

Recommended Posts

ola galera estou na luta aqui, se eu estiver no lugar errado sorry...

seguinte estou num projeto de escola de cursos, e no curso terá tipo uns 3 valores de curso

os cursos aVista - curso Parcelado - e curso pago na promissoria

fiz esses radio para habilitar e desabilitar os valores conforme clicado

<input type="radio" name="comoPagar" id="Pgtovista" onclick="habilitar()" />
          <label class="form-check-label" for="aVista">
           à Vista
          </label>


		<input type="radio" name="comoPagar" id="Pgtoparcelado" onclick="habilitar()" />
          <label class="form-check-label" for="parcelado">
           Parcelado
          </label>


		<input type="radio" name="comoPagar" id="Pgtopromissoria" onclick="habilitar()" />
          <label class="form-check-label" for="promissoria">
           Promissoria
          </label>

esse é meu java script para trabalhar

<script>
  //Habilitar_Desabilitar_Inputs
function habilitar() {
    //aVista
	if ($("#Pgtovista").prop('checked') == true) {
        $("#Avista").prop("disabled", false);
    }
    else {
        $("#Avista").prop("disabled", true);
    }
	
	//Parcelado
	if ($("#Pgtoparcelado").prop('checked') == true) {
        $("#parcelado").prop("disabled", false);
    }
    else {
        $("#parcelado").prop("disabled", true);
    }
	
	//Promissoria
	if ($("#Pgtopromissoria").prop('checked') == true) {
        $("#promissoria").prop("disabled", false);
    }
    else {
        $("#promissoria").prop("disabled", true);
    }
	
}
<script>

bom agora vem o que esta pegando, esse javaScript acima esta habilitando certinho conforme clicado na forma, mais  negocio é que tenho por exemplo 30 cursos cadastrados e na hora de habilitar ele só habilita o primeiro valor entendem..

 

vou explicar minha logica...

estou querendo somar os cursos que o aluno escolher fazer tipo tenho um whilePHP que esta me retornando todos os 30 cursos

<input type="text" name="cursoPretendido[]" id="Avista" value="<?php echo $resultListCursos->valorCursoVista?>" id="<?php echo $resultListCursos->idCurso?>" disabled />
<input type="text" name="cursoPretendido[]" id="parcelado" value="<?php echo $resultListCursos->valorCursoParcelado?>" id="<?php echo $resultListCursos->idCurso?>" disabled />
<input type="text" name="cursoPretendido[]" id="promissoria" value="<?php echo $resultListCursos->valorCursoPromissoria?>" id="<?php echo $resultListCursos->idCurso?>" disabled /><br>

        <label style="margin:0 0% 0 0%; font-size:1.3em" class="form-check-label" for="<?php echo $resultListCursos->idCurso?>">
         <?php echo $resultListCursos->nomeCurso?></div>
        </label>

ai quero pedir pra habilitar apenas os valores conforme clicado, se for aVista, mostro-o, e  desabilito o parcelado e o promissoria se for parcelado mostro-o e desabilito o aVista e o Promissoria, se for promissoria, mostro-o e deabilito o avista e parcelado certo,

assim vou cadastrar pegando apenas o valor habilitado(eu acho) rsss

mais o problema é que ele esta desabilitando apenas o primeiro registro do whilePHP

acredito que tenho que fazer um forJavascritp, seria isso 

me ajudem pfv

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá se eu entendi direito.

 

Primeiramente preste mais atenção na composição do HTML para não cometer erros grotescos como os que cometeu

13 horas atrás, helkton disse:

<input type="radio" name="comoPagar" id="Pgtovista" onclick="habilitar()" /> <label class="form-check-label" for="aVista"> à Vista </label>

 

13 horas atrás, helkton disse:

<input type="text" name="cursoPretendido[]" id="Avista" value="<?php echo $resultListCursos->valorCursoVista?>" id="<?php echo $resultListCursos->idCurso?>" disabled />

 

 

Enfim... Existem milhares de formas de se chegar a e manipular elementos no DOM, um requisito básico para isso é a correta e coesão de itens.

Mas pelo meu entendimento do que pretende acho que a melhor forma de você entender e por não saber como será o conceito da renderização final aí fica mais simples atacar cada elemento de forma bem literal usando os atributo class e data.

No mais transcrevi os passos do comportamento geral no próprio exemplo:

Spoiler

<p>Curso HTML</p>
<!-- Vão ser os inputs type text com class "alvo_a" -->
<input
    type="radio"
    name="pagamento_a"
    id="a-a"
    class="alvo_da_funcao"
    data-alvo="alvo_a"
    data-tipo="avista"
/>
<label for="a-a">À Vista</label>

<input type="radio" name="pagamento_a" id="a-b" class="alvo_da_funcao" data-alvo="alvo_a" data-tipo="parcelado" />
<label for="a-b">Parcelado</label>

<input type="radio" name="pagamento_a" id="a-c" class="alvo_da_funcao" data-alvo="alvo_a" data-tipo="promissoria" />
<label for="a-c">Promissoria</label>


<p>Curso Javascript</p>
<!-- Vão ser os inputs type text com class "alvo_b" -->
<input
    type="radio"
    name="pagamento_b"
    id="b-a"
    class="alvo_da_funcao"
    data-alvo="alvo_b"
    data-tipo="avista"
/>
<label for="b-a">À Vista</label>

<input type="radio" name="pagamento_b" id="b-b" class="alvo_da_funcao" data-alvo="alvo_b" data-tipo="parcelado" />
<label for="b-b">Parcelado</label>

<input type="radio" name="pagamento_b" id="b-c" class="alvo_da_funcao" data-alvo="alvo_b" data-tipo="promissoria" />
<label for="b-c">Promissoria</label>

<!-- TIPOS DE PAGAMENTO -->

<p>Pagamentos para o Curso HTML</p>
<input
    type="text"
    name="cursoPretendido[]"
    id="a-a-a" value="a a"
    class="alvo_a"
    data-tipo="avista"
    disabled=""
    />
<input type="text" name="cursoPretendido[]" id="a-a-b" value="a b" class="alvo_a" data-tipo="parcelado" disabled="" />
<input type="text" name="cursoPretendido[]" id="a-a-c" value="a c" class="alvo_a" data-tipo="promissoria" disabled="" />

<p>Pagamentos para o Curso Javascript</p>
<input
    type="text"
    name="cursoPretendido[]"
    id="b-a-a"
    value="b a"
    class="alvo_b"
    data-tipo="avista"
    disabled=""
/>
<input type="text" name="cursoPretendido[]" id="b-a-b" value="b b" class="alvo_b" data-tipo="parcelado" disabled="" />
<input type="text" name="cursoPretendido[]" id="b-a-c" value="b c" class="alvo_b" data-tipo="promissoria" disabled="" />

<script>
    /*
     * Primeiro vamos buscar todos inputs radio de queremos
     * e vamos adicionar um evento para detectar se algum
     * deles é alterado.
     */
    var alvo = document.getElementsByClassName('alvo_da_funcao');
    for (var i = 0; i < alvo.length; i++) {
        alvo[i].addEventListener('change', habilitar, false);
    }

    function habilitar(e) {
        var marcado = e.target; // Com isso sabemos exatamente qual foi o radio marcado

        /* Selecionamos a propiedade data-alvo do "radio"
         * essa propiedade nos vai dar a informação
         * de quais inputs text vamos manipular */
        var quaisInputs = marcado.dataset.alvo;

        /* Selecionamos a propiedade data-tipo do "radio"
         * essa propiedade nos vai dar a informação
         * de qual input vamos manipular */
        var qualInput = marcado.dataset.tipo;

        /* Agora vamos então buscar por todos os alvos
         * aquele que seu "data-tipo" for igual ao do
         * input radio que foi clicado a propiedade
         * disabled é removida os demais então são
         * adicionados essa propiedade */
        var osInputAlvos = document.getElementsByClassName(quaisInputs);
        for (var j = 0; j < quaisInputs.length; j++) {
            if (osInputAlvos[j].dataset.tipo === qualInput) {
                osInputAlvos[j].removeAttribute('disabled');
            } else {
                osInputAlvos[j].setAttribute('disabled', '');
            }
        }
    }
</script>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

uia amigão esta quase funfando, matou a pau rssss

só estou tentando adaptar nessa minha pegada do curso e sem sucesso olha o q fiz...

<?php $sqlListCursos = "select * from cursos";
			$conectaListCursos = $conecta->query($sqlListCursos);?>
	<?php while($resultListCursos = $conectaListCursos->fetch_object()){?>

<div style="width:auto; padding:1%; margin:2px 2px 0px 0px; float:left;border:0px red solid">

<input type="text" name="Valor_a_Vista_vindo_do_Bando" id="a-a" value="aVista" class="alvo_a" data-tipo="vista" disabled=""/>
<input type="text" name="Valor_Parcelado_vindo_do_Bando" id="a-b" value="parcelado" class="alvo_a" data-tipo="parcelado" disabled="" />
<input type="text" name="Valor_promissoria_vindo_do_Bando" id="a-c" value="promissoria" class="alvo_a" data-tipo="promissoria" disabled="" />

<input type="hidden" name="cursos[]" value="<?php echo $resultListCursos->idCurso?>" checked>
	<input type="checkbox" name="cursoPretendido[]" value="<?php echo $resultListCursos->idCurso?>" id="<?php echo $resultListCursos->idCurso?>">
        <label style="margin:0 0% 0 0%; font-size:1.3em" class="form-check-label" for="<?php echo $resultListCursos->idCurso?>">
         <?php echo $resultListCursos->nomeCurso?>
	</div>
        </label>
	<?php }?>

como pode ver, estou fazendo uma consulta no banco de dados ai ele me lista todos os cursos ja com os valores, cada um no seu quadrado aVista - parcelado - promissória

nesse script acima, quando eu clico que vou pagar aVista, ele me HABILITA apenas os 2primeiros registros e assim suscetivamente , quando clico no Parcelado, ele me libera apenas os 2primeiros registros e quando clico na promissória e me libera apenas os 2primeiros registros

qual a cagada que estou  fazer??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Novamente seu html está em em conflito.

Você tem um elemento pai <div style="width:auto; ......

Você tem um elemento filho  <label style="margin:0 0% 0 0%; .......

Então você termina o elemento filho fora de elemento pai que dar conditos no DOM

Em 10/03/2020 at 12:29, helkton disse:

</div> </label>

 

A tag label que é filha deviria ser encerrada antes da tag div

 

Compor HTML em laços de repetição do PHP é muito simples, só que temos que ficar atento quando elementos gerados dentro desse laço tendem a ser manipulados por script de forma distinta.

Nesse caso precisamos no laço fazer algo que possa distinguir um elemento do outro de forma que uma função saiba exatamente o que fazer com cada elemento.

No meu exemplo eu usei a própria chave do índice do array de resultados.

Spoiler

<?php
$resultado_do_banco_de_dados = [
    [
        'idcurso' => 1,
        'nomecurso' => 'HTML'
    ],
    [
        'idcurso' => 2,
        'nomecurso' => 'Javascript'
    ],
    [
        'idcurso' => 3,
        'nomecurso' => 'PHP'
    ]
];
?>

<div>
    <?php foreach ($resultado_do_banco_de_dados as $key => $value) { ?>
        <p>Curso <?= $value['nomecurso'] ?></p>
        <input
            type="radio"
            value="avista[]"
            name="pagamento_<?= $key ?>"
            id="a_<?= $key ?>"
            class="alvo_da_funcao"
            data-alvo="alvo_<?= $key ?>"
            data-tipo="avista"
            />
        <label for="a_<?= $key ?>" Vista</label>

        <input type="radio" value="parcelado[]" name="pagamento_<?= $key ?>" id="b_<?= $key ?>" class="alvo_da_funcao" data-alvo="alvo_<?= $key ?>" data-tipo="parcelado" />
        <label for="b_<?= $key ?>">Parcelado</label>

        <input type="radio" value="promissoria[]" name="pagamento_<?= $key ?>" id="c_<?= $key ?>" class="alvo_da_funcao" data-alvo="alvo_<?= $key ?>" data-tipo="promissoria" />
        <label for="c_<?= $key ?>">Promissoria</label>

        <p>Pagamentos para o Curso <?= $value['nomecurso'] ?></p>
        <input
            type="text"
            name="cursoPretendido[]"
            value="<?= $value['idcurso'] ?>"
            class="alvo_<?= $key ?>"
            data-tipo="avista"
            disabled=""
            />
        <input type="text" name="cursoPretendido[]" value="<?= $value['idcurso'] ?>" class="alvo_<?= $key ?>" data-tipo="parcelado" disabled="" />
        <input type="text" name="cursoPretendido[]" value="<?= $value['idcurso'] ?>" class="alvo_<?= $key ?>" data-tipo="promissoria" disabled="" />

        <input type="hidden" name="cursos[]" value="<?= $value['idcurso'] ?>" checked="" />
    <?php } ?>
</div>

 

Aqui cada volta do loot $key representa o índice do array atual que está sendo processado, então uso isso para compor quantos cursos existirem sem duplicar itens iguais.

No mais mesmo script que dei de exemplo antes interage com os elementos uma vez que cada pode ser distinto a cada volta do loop.

 

 

Algo me chamou a atenção de como pretende validar dados via serve-side.

Se fosse eu faria diferente eliminando os input's text pois eles são inúteis, e ficaria só com com label para saber o tipo de pagamento e outro para poder saber de qual se trata, uma vez que o usuário marca um radio automaticamente ele assimila o curso.

 

Veja como eu faria de forma bem mais simples:

Spoiler

<?php
$resultado_do_banco_de_dados = [
    [
        'idcurso' => 1,
        'nomecurso' => 'HTML'
    ],
    [
        'idcurso' => 2,
        'nomecurso' => 'Javascript'
    ],
    [
        'idcurso' => 3,
        'nomecurso' => 'PHP'
    ],
];
?>

<?php foreach ($resultado_do_banco_de_dados as $value) { ?>
    <p>Curso <?= $value['nomecurso'] ?></p>
    <input
        type="radio"
        value="avista"
        name="pagamento_<?= $value['idcurso'] ?>"
        id="a_<?= $value['idcurso'] ?>"
        class="alvo_da_funcao"
        data-alvo="id_<?= $value['idcurso'] ?>"
        data-tipo="avista"
        />
    <label for="a_<?= $value['idcurso'] ?>" Vista</label>

    <input type="radio" value="parcelado" name="pagamento_<?= $value['idcurso'] ?>" id="b_<?= $value['idcurso'] ?>" class="alvo_da_funcao" data-alvo="id_<?= $value['idcurso'] ?>" />
    <label for="b_<?= $value['idcurso'] ?>">Parcelado</label>
    <input type="radio" value="promissoria" name="pagamento_<?= $value['idcurso'] ?>" id="c_<?= $value['idcurso'] ?>" class="alvo_da_funcao" data-alvo="id_<?= $value['idcurso'] ?>" />
    <label for="c_<?= $value['idcurso'] ?>">Promissoria</label>

    <!-- Esse input podemos deixar visível caso o usuário queira desmacar ou usar o CSS para ocultar -->
    <input id="id_<?= $value['idcurso'] ?>" type="checkbox" name="cursos[]" value="<?= $value['idcurso'] ?>" />
<?php } ?>

<script>
    var alvo = document.getElementsByClassName('alvo_da_funcao');
    for (var i = 0; i < alvo.length; i++) {
        alvo[i].addEventListener('change', habilitar, false);
    }
    function habilitar(e) {
        var marcado = e.target;
        var qualCurso = marcado.dataset.alvo; // como o data-alvo é o mesmo ID do ckeckBox é só marcar ele
        document.getElementById(qualCurso).setAttribute('checked', '');
    }
</script>

 

E no lado do servidor fica fácil depurar:


<?php
foreach ($_POST['cursos'] as $value) {
    $curso = $value;
    $pagStr = "pagamento_{$value}";
    $typo = $_POST[$pagStr];
    echo ("<p>O usuário selecionou o curso de ID \"{$curso}\" e a forma de paramento é \"{$typo}\"</p>");
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou com um problema de cálculo que não estou conseguindo resolver.
       
      Tenho uma rotina em Javascript que faz o seguinte cálculo qtde x vrUnit = total.
       
      qtde   x  vrUnit    =    total
      1,23   x  1,00       =    1,23    << até aqui tudo bem.
       
      o problema seria fazer o arredondamento para cima para impedir de fazer este cálculo:
      0,01 x 0,01 = 0,0001
       
      para digitar o valor estou utilizando esta função:
       
      /*Esta função quando o usuário digitar o valor aparece * 1,23 */ function formataDigitacao(i) { //Adiciona os dados para a másrcara var decimais = 2; var separador_milhar = '.'; var separador_decimal = ','; var decimais_ele = Math.pow(10, decimais); var thousand_separator = '$1'+separador_milhar; var v = i.value.replace(/\D/g,''); v = (v/decimais_ele).toFixed(decimais) + ''; var splits = v.split("."); var p_parte = splits[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, thousand_separator); (typeof splits[1] === "undefined") ? i.value = p_parte : i.value = p_parte+separador_decimal+splits[1]; } /*Esta função faz a multiplicação entre Valor Unitário X Quantidade *faz a multiplicação correta */ function calcProd(){ //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Obter valor digitado do produto var valor_unit = document.getElementById("vlrunit").value; //Remover ponto e trocar a virgula por ponto while (valor_unit.indexOf(".") >= 0) { valor_unit = valor_unit.replace(".", ""); } valor_unit = valor_unit.replace(",","."); //Calcula o Valor do Desconto if (valor_unit > 0 && prod_qtde > 0) { calc_total_produto = (parseFloat(valor_unit) * parseFloat(prod_qtde)); var numero = calc_total_produto.toFixed(2).split('.'); //<<== aqui faço o arredondamento das casas decimais de 1,234 p/ 1,23 numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida de validação de INPUT com função moeda.
       
      Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56
      o problema é quando precisa atualizar o valor.
       
      Quando o usuário atualizar o input fica assim: 1.234,
       
      como faço para atualizar as casas decimais, conforme o valor for sendo alterado ?
       
      o input está assim:
       
      <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div>  
      a função para formatar o input para moeda está assim:
      obs.: a Função CalcProd está executando corretamente
      function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; 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 len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; }  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida de validação de INPUT com função moeda.
       
      Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56
      o problema é quando precisa atualizar o valor.
       
      Quando o usuário atualizar o input fica assim: 1.234,
       
      como faço para atualizar as casas decimais, conforme o valor for sendo alterado ?
       
      o input está assim:
       
      <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div>  
      a função para formatar o input para moeda está assim:
      obs.: a Função CalcProd está executando corretamente
      function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; 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 len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; }  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Desculpa postar minha dúvida, fiz várias pesquisa mas não tive sucesso.
       
      Como faço para capturar o ID do SELECT selecionado e passar para base_url ?
       
      Exemplo:
      após selecionar o ID passar para <?php echo base_url();?>estoque/ajuste/adicionar/ <== passar o ID aqui.
       
      <div class="col-md-6"> <label for="tipoDepart" class="control-label">Departamento:</label> <select name="tipoDepart" id="tipoDepart" style="width:100%;" class="form-control"> <option value="">Selecione um Departamento</option> <?php foreach ($dprts as $dp) { echo '<option value="'.$dp->idDepartamento.'">'.$dp->departamento.'</option>'; } ?> </select> </div> <div class="col-md-6"> <div class="card card-entrad"> <div class="card-header"> <label class="card-tlentr">Entrada - Estoque</label> </div> <div class="card-body"> <div style="text-align:center;"> <a href="<?php echo base_url();?>estoque/ajuste/adicionar/" <== COMO PASSO O ID SELECIONADO AQUI, PARA ABRIR A PÁGINA COM O ID DO DPTO ? class="btn btn-cinza">Adicionar</a> </div> </div> </div> </div>  
      Observação: preciso capturar e passar o ID para gerar TABELA referente a cada departamento.
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Tem como passar para o Formulário um Campo vindo via AJAX no formato moeda ?
       
      Tenho uma rotina onde o usuário escolhe através de uma Lista na modal de Produtos e o sistema informa o formulário os seguintes campos:
      código | descrição | espécie | estoque atual.
       
      o estoque atual preciso passar nesse formato, para validação de quantidade: 15.00 ou 15,00.
      ou seja:
      converter de: 15 
      para: 15.00 com casas decimais

      tem como fazer isso ?
       
      Grato,
       
      Cesar
×

Informação importante

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