How to limit an input according to the variable?

2

I have 2 fields as shown below:

 <div class="col-md-4">
                      <label for="descricao">Valor título </label>
                          <div class="input-group">
                            <span class="input-group-addon">R$</span>
                            <input type="text" id="entr_valorMoeda" class="form-control valor" value="<?php echo $conta->ENTR_ValorMoeda;?>" readonly >
                            <input type="hidden" class="valor"  name="entr_valorMoeda" value="<?php echo $conta->ENTR_ValorMoeda;?>">                                        
                          </div>
                  </div>

                  <div class="col-md-4">
                      <label for="descricao">Valor baixa </label>
                        <div class="input-group">
                          <span class="input-group-addon">R$</span>
                          <input type="text" class="form-control valor" id="valorBaixa" name="valorBaixa" value="<?php echo $valorBaixa;?>">
                          <input type="hidden" name="totalBaixas" value="<?php echo $totalBaixas; ?>">                                        
                        </div>
                  </div> 

Where the first field tells me a database value and 2 replicates this same value but the first field is blocking and can not change and the second I can change, so I wanted to know how I do it when I go to change this second is no more than the value of the varialvel.

    
asked by anonymous 22.11.2018 / 19:41

2 answers

1

One suggestion is to compare the values by changing the second input with keyup . If the value entered is greater than the first input, the code applies the value of the first one to the field.

For this you have to leave the values in the correct format, where you must have only one point separating the decimals (eg, 25066.77 ). For this I use 2 replaces, the first removing the points of the thousands (if any) and the second replacing the comma by point. You also need to use .parseFloat() to convert to float number (with decimals).

In the example below I put a mask to format the monetary value in the field:

// máscara para exemplificar
$("#valorBaixa").maskMoney({
   allowNegative: true,
   thousands: '.',
   decimal: ','
});

$("#valorBaixa").on("keyup", function(){
   
   // número mascarado
   var entr_valorMoeda = $("#entr_valorMoeda").val();
   // número formatado para comparação
   var entr_valorMoeda_num = parseFloat(entr_valorMoeda.replace(/\./g, "").replace(",", "."));
   // número mascarado
   var valorBaixa = $(this).val();
   // número formatado para comparação
   var valorBaixa_num = parseFloat(valorBaixa.replace(/\./g, "").replace(",", "."));
   if(entr_valorMoeda_num < valorBaixa_num){
      // se o primeiro valor for menor que o segundo
      // forço o segundo a ser igual ao primeiro
      $("#valorBaixa").val(entr_valorMoeda);
   }
   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><scriptsrc="https://cdnjs.cloudflare.com/ajax/libs/jquery-maskmoney/3.0.2/jquery.maskMoney.min.js"></script>
<div class="col-md-4">
   <label for="descricao">Valor título </label>
   <div class="input-group">
      <span class="input-group-addon">R$</span>
      <input type="text" id="entr_valorMoeda" class="form-control valor" value="25.066,67" readonly >
      <input type="hidden" class="valor"  name="entr_valorMoeda" value="<?php echo $conta->ENTR_ValorMoeda;?>">                                        
   </div>
</div>

<div class="col-md-4">
   <label for="descricao">Valor baixa </label>
   <div class="input-group">
      <span class="input-group-addon">R$</span>
      <input type="text" class="form-control valor" id="valorBaixa" name="valorBaixa" value="25.066,67">
      <input type="hidden" name="totalBaixas" value="<?php echo $totalBaixas; ?>">                                        
   </div>
</div>
    
22.11.2018 / 20:43
0

Do not you want to pass the value of the variable when registered in the bank? or when the user changes within the input? You can do this within an if.

if($variavel >= $variavel2){

echo "Não deixo cadastrar no banco"

}else{echo "ela é maior, então não pode alterar";}

Logic is more or less this.

    
22.11.2018 / 20:19