valor texto span obtener etiqueta con change cambiar boton asignar agregar jquery alerts jconfirm

texto - Casilla de confirmación Sí o No usando jQuery



change text jquery (8)

Eche un vistazo a este plugin jQuery: jquery.confirm .

<a href="home" class="confirm">Go to home</a>

y entonces:

$(".confirm").confirm();

Esto mostrará una ventana emergente de confirmación antes de proceder a seguir el enlace.

Hay una demostración aquí: jquery.confirm

Quiero alertas de sí / no usando jQuery, en lugar de aceptar / cancelar el botón:

jQuery.alerts.okButton = ''Yes''; jQuery.alerts.cancelButton = ''No''; jConfirm(''Are you sure??'', '''', function(r) { if (r == true) { //Ok button pressed... } }

¿Alguna otra alternativa?


El método de alerta bloquea la ejecución hasta que el usuario la cierra:

usa la función de confirmación:

if (confirm(''Some message'')) { alert(''Thanks for confirming''); } else { alert(''Why did you press cancel? You should have confirmed''); }


He usado estos códigos:

HTML:

<a id="delete-button">Delete</a>

jQuery:

<script> $("#delete-button").click(function(){ if(confirm("Are you sure you want to delete this?")){ $("#delete-button").attr("href", "query.php?ACTION=delete&ID=''1''"); } else{ return false; } }); </script>

Estos códigos funcionan para mí, pero no estoy seguro si esto es correcto. ¿Qué piensas?


Necesitaba aplicar una traducción a los botones Aceptar y Cancelar. Modifiqué el código para que no fuera texto dinámico (llama a mi función de traducción)

$.extend({ confirm: function(message, title, okAction) { $("<div></div>").dialog({ // Remove the closing ''X'' from the dialog open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }, width: 500, buttons: [{ text: localizationInstance.translate("Ok"), click: function () { $(this).dialog("close"); okAction(); } }, { text: localizationInstance.translate("Cancel"), click: function() { $(this).dialog("close"); } }], close: function(event, ui) { $(this).remove(); }, resizable: false, title: title, modal: true }).text(message); } });


Puedes reutilizar tu confirmación:

function doConfirm(body, $_nombrefuncion) { var param = undefined; var $confirm = $("<div id=''confirm'' class=''hide''></div>").dialog({ autoOpen: false, buttons: { Yes: function() { param = true; $_nombrefuncion(param); $(this).dialog(''close''); }, No: function() { param = false; $_nombrefuncion(param); $(this).dialog(''close''); } } }); $confirm.html("<h3>"+body+"<h3>"); $confirm.dialog(''open''); }; // for this form just u must change or create a new function for to reuse the confirm function resultadoconfirmresetVTyBFD(param){ $fecha = $("#asigfecha").val(); if(param ==true){ // DO THE CONFIRM } } //Now just u must call the function doConfirm doConfirm(''body message'',resultadoconfirmresetVTyBFD);


Todos los ejemplos que he visto no son reutilizables para diferentes preguntas tipo "sí / no". Estaba buscando algo que me permitiera especificar una devolución de llamada para poder llamar cualquier situación.

Lo siguiente está funcionando bien para mí:

$.extend({ confirm: function (title, message, yesText, yesCallback) { $("<div></div>").dialog( { buttons: [{ text: yesText, click: function() { yesCallback(); $( this ).remove(); } }, { text: "Cancel", click: function() { $( this ).remove(); } } ], close: function (event, ui) { $(this).remove(); }, resizable: false, title: title, modal: true }).text(message).parent().addClass("alert"); } });

Entonces lo llamo así:

var deleteOk = function() { uploadFile.del(fileid, function() {alert("Deleted")}) }; $.confirm( "CONFIRM", //title "Delete " + filename + "?", //message "Delete", //button text deleteOk //"yes" callback );


Tuve problemas para recuperar la respuesta del cuadro de diálogo, pero finalmente se me ocurrió una solución combinando la respuesta de esta otra pregunta display-yes-and-no-buttons-instead-of-ok-and-cancel-in-confirm-box con parte del código del diálogo de confirmación modal

Esto es lo que se sugirió para la otra pregunta:

Crea tu propio cuadro de confirmación:

<div id="confirmBox"> <div class="message"></div> <span class="yes">Yes</span> <span class="no">No</span> </div>

Crea tu propio método de confirm() :

function doConfirm(msg, yesFn, noFn) { var confirmBox = $("#confirmBox"); confirmBox.find(".message").text(msg); confirmBox.find(".yes,.no").unbind().click(function() { confirmBox.hide(); }); confirmBox.find(".yes").click(yesFn); confirmBox.find(".no").click(noFn); confirmBox.show(); }

Llámalo por tu código:

doConfirm("Are you sure?", function yes() { form.submit(); }, function no() { // do nothing });

MIS CAMBIOS He modificado lo anterior para que en lugar de llamar a confirmBox.show() use confirmBox.dialog({...}) como este

confirmBox.dialog ({ autoOpen: true, modal: true, buttons: { ''Yes'': function () { $(this).dialog(''close''); $(this).find(".yes").click(); }, ''No'': function () { $(this).dialog(''close''); $(this).find(".no").click(); } } });

El otro cambio que hice fue crear el div de confirmBox dentro de la función doConfirm, como lo hizo ThulasiRam en su respuesta.


ConfirmDialog(''Are you sure''); function ConfirmDialog(message) { $(''<div></div>'').appendTo(''body'') .html(''<div><h6>''+message+''?</h6></div>'') .dialog({ modal: true, title: ''Delete message'', zIndex: 10000, autoOpen: true, width: ''auto'', resizable: false, buttons: { Yes: function () { // $(obj).removeAttr(''onclick''); // $(obj).parents(''.Parent'').remove(); $(''body'').append(''<h1>Confirm Dialog Result: <i>Yes</i></h1>''); $(this).dialog("close"); }, No: function () { $(''body'').append(''<h1>Confirm Dialog Result: <i>No</i></h1>''); $(this).dialog("close"); } }, close: function (event, ui) { $(this).remove(); } }); };

Por favor encuentra la Demo .