addEventListener不起作用?它应该与onclick做点什么

Ros*_*nda 0 javascript addeventlistener

我有一个表单,在单击单选按钮后,我想要显示几个文本输入.

那不行.没有任何东西出现,控制台没有说什么.在检查文件是否存在并且它被正确调用后,我确实检查了同一个html文档中的其他JS并且它确实有效,所以我猜我调用该函数的方式有问题.

这是我的HTML代码:

          <label class="col-md-3">
            <input class="form-check-input" type="radio" name="pagoMedioUtilizado" id="tarjeta" value="tarjeta" addEventListener="return avisoPago.tipoPago();">
            Tarjeta Crédito
          </label>

      <div class="form-group sr-only" id="bloqueOperacion">
        <label class="control-label">Código de la Operación</label>
          <input type="text" name="pagoCodigo" class="form-control" id="ticket" placeholder="Ingrese el número de Operación que está al pie del ticket">
      </div>
Run Code Online (Sandbox Code Playgroud)

这是JS代码:

var avisoPago = {
    //obtenemos el valor de email con this.email()
    fecha: function () {    return $('#fecha').val();   },  
    monto: function () {    return $('#monto').val();   },  
    cuentaOrigen: function () { return $('#cuentaOrigen').val();    },  
    sucursal: function () { return $('#sucursal').val();    },  
    ticket: function () {   return $('#ticket').val();  },  

    tipoPago: function() {
        if(document.getElementById('deposito').checked) {
            console.log('se depositó');
            $('#bloqueSucursal').removeClass('sr-only');
            $('#bloqueOperacion').removeClass('sr-only');
            $('#bloqueCuenta').addClass('sr-only');
        }else if(document.getElementById('transferencia').checked) {
            console.log('se transfirió');
            $('#bloqueCuenta').removeClass('sr-only');
            $('#bloqueSucursal').addClass('sr-only');
            $('#bloqueOperacion').addClass('sr-only');
        }else if(document.getElementById('tarjeta').checked) {
            console.log('se pagó con tarjeta');
            $('#bloqueCuenta').addClass('sr-only');
            $('#bloqueSucursal').addClass('sr-only');
            $('#bloqueOperacion').removeClass('sr-only');
        }else if(document.getElementById('efectivo').checked) {
            console.log('se pagó en efectivo');
            $('#bloqueCuenta').addClass('sr-only');
            $('#bloqueSucursal').addClass('sr-only');
            $('#bloqueOperacion').addClass('sr-only');
        }   
    },
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,如果我点击id为"tarjeta"的广播,"bloqueOperacion的内容应该改变类.sr-only是一个隐藏内容的类,因此,隐藏的东西应该在删除类之后出现.

我究竟做错了什么?谢谢!

Bar*_*mar 6

addEventListener 它不是一个属性,它是你从JS调用的函数.

但是既然你正在使用jQuery,你可以使用它的更短的方法:

$(document).ready(function() {
    $("#tarjeta").click(avisoPago.tipoPago);
});
Run Code Online (Sandbox Code Playgroud)