Tengo una interfaz web simple en la que puedo seleccionar un determinado mercado, precio, objetivos y stop loss para una operación personal de criptomonedas en un intercambio.

He agregado algunas reglas de validación de laravel predeterminadas, algunas de ellas aparecen en la interfaz web como deberían, pero una de ellas en particular no es mientras se activa porque cuando inspecciono el error 422 POST, aparece en la respuesta.

Aquí el formulario muestra errores, excepto en la parte stoploss, pero el error stoploss no aparece en la interfaz web:

He simplificado la regla para tener solo "requerir" para propósitos de prueba, además, con más reglas no funciona. las normas:

'market' => 'required',
'trade_value' => 'required|numeric|min:10',
'limit-price' => 'sometimes|min:1|numeric',
'stop-price' => 'required',

La respuesta de retorno del 422 POST (¿laravel crea esto?):

{
    "message":"The given data was invalid",
    "errors":{
    "market":[
        "The market field is required."
    ],
    "limit-price":[
        "The limit-price must be at least 1.",
        "The limit-price must be a number."
    ],
    **"stop-price":[
        "The stop-price field is required."
    ]**
}

Código de formulario por solicitud (eliminé algunos div que no están involucrados en el tema):

<form method="POST" action="/trades" accept-charset="UTF-8" novalidate="" class="ajax-form"><input name="_token" type="hidden" value="sdgsdge563456">
           <!-- Default box -->
<div class="card ">
    <div class="card-header with-border" style="display:none;">
        <div class="float-left">

        </div>
        <div class="card-tools float-right">

        </div>
    </div>
    <div class="card-body">
        <div class="row">
               <div class="col-12">
                   <div class="form-group   required-field "><label for="market">Market</label><select class="form-control " id="market" name="market"><option selected="selected" value="">Select Market ...</option><option value="btc-perpetual">BTC-PERPETUAL</option><option value="eth-perpetual">ETH-PERPETUAL</option></select></div>
               </div>
           </div>
    </div>
    <!-- /.box-body -->
    <div class="card-footer" style="display:none;">

    </div>
    <!-- /.box-footer-->
</div>
<!-- /.box -->
           <!-- Default box -->
<div class="card ">
    <div class="card-header with-border" style="display:none;">
        <div class="float-left">

        </div>
        <div class="card-tools float-right">

        </div>
    </div>
    <div class="card-body">
        <div class="row">
               <div class="col-12">
                   <div class="form-group   required-field "><label for="trade_value">Trade Value</label><div class="input-group "><input class="form-control " placeholder="Trade Value" id="trade_value" name="trade_value" type="number" value="10"><div class="input-group-addon  input-group-append"><div class="input-group-text">USD</div></div></div></div>
               </div>
           </div>
    </div>
    <!-- /.box-body -->
    <div class="card-footer" style="display:none;">

    </div>
    <!-- /.box-footer-->
</div>
<!-- /.box -->
           <!-- Default box -->

<!-- /.box -->
           <!-- Default box -->
<div class="card ">
    <div class="card-header with-border" style="display:none;">
        <div class="float-left">

        </div>
        <div class="card-tools float-right">

        </div>
    </div>
    <div class="card-body">

           <div class="entrytype entrylimit">
               <div class="row">
                   <div class="col-12">
                       <div class="form-group   required-field "><label for="limit-price">Price</label><div class="input-group "><input class="form-control " placeholder="Price" id="limit-price" name="limit-price" type="number"><div class="input-group-addon  input-group-append"><div class="input-group-text">USD</div></div></div></div>
                   </div>
               </div>

           </div>
    </div>
    <!-- /.box-body -->
    <div class="card-footer" style="display:none;">

    </div>
    <!-- /.box-footer-->
</div>
<!-- /.box -->
        </form>```
0
p0nts 18 oct. 2019 a las 18:29

1 respuesta

La mejor respuesta

Yo mismo resolví el problema.

Básicamente, el código de inicio del formulario debe estar delante de los divs de 3 columnas, de lo contrario, laravel detendría la validación después del primer div.

0
p0nts 20 oct. 2019 a las 17:11