Soy nuevo en jquery y trato de hacer lo siguiente:
tengo un formulario:
<form method="POST" class="add-product" > ... <label name="message"></label> ... </form>Y guión:
$(document).ready(function() { $(".add-product").submit(function(e) { e.preventDefault(); var form = this; $.ajax({ type: "POST", url: "/product/add/", data: $(this).serialize(), success: function(data) { $(form.elements["message"]).html(data.message); } }); });});
Estoy tratando de actualizar la etiqueta con el mensaje, pero no funciona. Parece que tengo algún error en la sintaxis:
$(form.elements["message"]).html(data.message);El problema se debe a que la label no aparece en la colección form.elements . En su lugar, debe seleccionarlo directamente:
$(".add-product").submit(function(e) { e.preventDefault(); var form = this; // inside the AJAX callback... var data = { message: 'Foo bar' } $(form).find('label[name="message"]').html(data.message); }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form method="POST" class="add-product"> <label name="message"></label> <button>Submit</button> </form>Prueba a usar el selector:
$("form.add-product label[name='message']").html(data.message)
Puede leer más sobre los selectores de atributos de jQuery aquí. https://api.jquery.com/attribute-equals-selector/
Si tiene más de una etiqueta en la página con el atributo name='message' , lo anterior no funcionará.
Usaste el selector jquery incorrecto, pruébalo:
$('label[name="message"]').html(data.message);espero que esto ayude;