¿Utilizo JavaScript para HTML
¿Fue útil?

Solución

En primer lugar, me gustaría dejar en claro que todos los valores calculados en el navegador deber ser validado en el servidor. Realmente hay Sin sustituto Para la validación del lado del servidor. Los scripts del lado del cliente solo deben usarse para mejorar la experiencia del usuario. No hacerlo es un agujero de seguridad esperando ser explotado.

  1. Para resolver el problema en cuestión, puede explotar el hecho de que las entradas deshabilitadas no se envían cuando se publica un formulario. Por lo tanto, si el usuario no selecciona hacer un pago recurrente srt nunca se publicará.
  2. Comenzar con srt tanto discapacitados como ocultos.
  3. La entrada oculta src debería tener un valor de 0 para empezar.
  4. Agregue un "pago recurrente?" casilla de verificación al formulario.
  5. Si el usuario selecciona la casilla de verificación, habilite y muestre srt a través de JavaScript.
  6. Establecer el valor de src igual a lo que el usuario seleccione en srt.
  7. Desactivar y en blanco srt y src Si el usuario alguna vez desactiva la casilla de verificación.

MANIFESTACIÓN

Margen:

<p><input type="checkbox" value="recurring" id="recurring"/>Recurring Payment?</p>
<select disabled id="srt" name="srt">                         
    <option selected value="2">2</option>  
    <option value="3">3</option>  
</select>
<input type="hidden" id="src" name="src" value="0"> 

jQuery:

$('#recurring').click(function() {
    var $srt = $('#srt'),
        $src = $('#src');
    if (this.checked) {
        $srt.prop('disabled', false).toggle();
        $src.val($srt.val());
    } else {
        $srt.prop('disabled', true).toggle();
        $src.val(0);
    }
});

$('#srt').change(function() {
    $('#src').val($(this).val());
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top