$(document).ready(function () { var from='2022-02-21'; var to='2022-02-25'; var category ='rt'; var btndiv = '<div class="col-12 text-right">\ <input type="button" value="Generate Invoice" id="btngenerateinvoice" onclick="generateinvoice('+ from + ',' + to + ',' + category + ')" class="btn btn-blue btn-sm" /></div>'; $(".btndiv").append(btndiv); }); function generateinvoice(ff, tt, cc) { alert("helo"); var f = ff; var t = tt; var c = cc } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="row btndiv"> </div>Paso tres parámetros al hacer clic en la función generar factura de forma dinámica, pero generar factura no se llama a esta función
El problema es que los valores dentro de onclick="generateinvoice cuando se procesan, el código cree que son variables y no se han definido. Puede agregar \' delante y después de cada variable.
para que pueda hacer onclick="generateinvoice(\''+ from + '\',\'' + to + '\',\'' + category + '\')"
Sin el \' el código representado podría parecerse a generateinvoice(from,to,category) , pero cuando los agrega, el código representará las variables como una cadena, por lo que parece generateinvoice('from','to','category')
Manifestación
$(document).ready(function() { var from = "f", to = "t", category = "cc"; var btndiv = '<div class="col-12 text-right">\ <input type="button" value="Generate Invoice" id="btngenerateinvoice" onclick="generateinvoice(\''+ from + '\',\'' + to + '\',\'' + category + '\')" class="btn btn-blue btn-sm" /></div>'; $(".btndiv").append(btndiv); }); function generateinvoice(ff, tt, cc) { alert("helo"); var f = ff; var t = tt; var c = cc } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="row btndiv"> </div>