.new() no funciona en el controlador de clics de jQuery

Estoy usando truffle como mi plataforma de desarrollo de Dapp junto con testrpc. Cuando intento crear una nueva instancia de mi contrato usando el método .new(), tengo un problema al imprimir los detalles del contrato de esta nueva instancia de contrato en el archivo console.log en la consola JS del navegador. Específicamente, estoy activando la invocación del método .new() usando un método jquery click() que toma los valores de los parámetros del constructor del contrato en el navegador. El código que estoy usando está contenido en un archivo app.js al que se hace referencia en el archivo index.html y se establece a continuación:

$("#clickButton").click(function() {

    var accounts = web3.eth.accounts;
    var Param1 = parseInt($("input#param1").val());
    var Param2 = parseInt($("input#param2").val());
    var Param3 = parseInt($("input#param3").val());

    console.log(Param1,Param2,Param3)

    var myContractInstance=myContract.new(Param1,Param2,Param3,{ from: accounts[0]});

    console.log(myContractInstance);

    myContractInstance
    .then(function(contract) {
    console.log('Contract created', contract)
    })
    .catch(function(err) {
    console.log('Error', err)
    });

La impresión que obtengo en la consola JS es la siguiente (nota: tengo valores de entrada de 1111,222 y 3333 para mis valores de Param1, Param2 y Param3:

1111 222 3333 Promise {_bitField: 0, _fulfillmentHandler0: indefinido, _rejectionHandler0: indefinido, _promise0: indefinido, _receiver0: indefinido...} Error Error: Respuesta JSON RPC no válida: ""(...)

Está claro que los valores se están consumiendo correctamente (ya que se están imprimiendo). Además, está claro que se está creando el objeto de promesa (ya que también se imprimió correctamente). Parece estar fallando a partir de entonces.

Sin embargo, si copio y pego exactamente el mismo código anterior en la consola JS del navegador, no obtengo el error anterior, es decir, el contrato se imprime en el archivo console.log como se esperaba sin ningún problema. Estoy desconcertado en cuanto a por qué recibo un error si uso el método jquery click() pero no obtengo un error si ingreso el código directamente en la consola JS. Cualquier ayuda es muy apreciada.

Respuestas (1)

El comportamiento predeterminado de un clic de botón es enviar un formulario. Cuando hace clic en el enlace, la página se actualiza desde el envío del formulario, interrumpiendo la solicitud web3.

Agregue return falseal final de su controlador de clics para evitar la acción predeterminada del navegador y funcionará.

@thegooders si esta solución resuelve su problema, acéptelo
En realidad, creo que lo he descubierto. Si no es así, por favor hágamelo saber.