<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=O_plugin_Form_en_jQuery</id>
	<title>O plugin Form en jQuery - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=O_plugin_Form_en_jQuery"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=O_plugin_Form_en_jQuery&amp;action=history"/>
	<updated>2026-10-23T22:54:34Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=O_plugin_Form_en_jQuery&amp;diff=52514&amp;oldid=prev</id>
		<title>Veiga: /* Enviando arquivos */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=O_plugin_Form_en_jQuery&amp;diff=52514&amp;oldid=prev"/>
		<updated>2015-01-26T22:10:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Enviando arquivos&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ata este momento no tutorial centrámosnos nas capacidades do núcleo jQuery e da biblioteca; pero todo isto é soamente a punto do iceberg!&lt;br /&gt;
&lt;br /&gt;
A colección de plugins para jQuery dispoñible ata estes momentos é inmensa e impresionante. Os creadores do núcleo jQuery coidadosamente escolleron as funcións necesitadas pola maioría de desarrolladores de páxinas web e crearon un marco para que outros puideran construir plugins fácilmente.&lt;br /&gt;
&lt;br /&gt;
Isto mantén o núcleo de jQuery o máis pequeno posible, de xeito que si queremos engadir máis funcionalidade teremos que empregar plugins adicionais.&lt;br /&gt;
&lt;br /&gt;
Para consultar a lista de plugins dispoñibles teremos que ir a [http://plugins.jquery.com/ http://plugins.jquery.com/]&lt;br /&gt;
&lt;br /&gt;
A lista de plugins máis populares en [http://plugins.jquery.com/most_popular http://plugins.jquery.com/most_popular]&lt;br /&gt;
&lt;br /&gt;
Aquí imos a ver algúns dos plugins máis útiles para a nosa programación web. &lt;br /&gt;
Imos comezar co plugin Form.&lt;br /&gt;
&lt;br /&gt;
== O plugin Form para jQuery ==&lt;br /&gt;
&lt;br /&gt;
Traballar con formularios en moitos casos soe ser un traballo tedioso e moi repetitivo. Cada tipo de control ten as suas particularidades e o envío de formularios a miúdo pode incluir a validación de campos, etc..&lt;br /&gt;
&lt;br /&gt;
O núcleo de jQuery ten algúns métodos que nos poden axudar, pero isto non é suficiente. O propósito do plugin Form é axudarnos a cubrir estas carencias e proporcionarnos máis poder nos controles dos formularios.&lt;br /&gt;
&lt;br /&gt;
Este plugin pódese atopar en [http://jquery.com/plugins/project/form http://jquery.com/plugins/project/form] e reside no ficheiro jquery.form.js.&lt;br /&gt;
&lt;br /&gt;
Este plugin proporciona funcionalidades nas seguintes áreas:&lt;br /&gt;
&lt;br /&gt;
■ Obtención dos valores dos controles do formulario&lt;br /&gt;
&lt;br /&gt;
■ Limpando e reseteando controles do formulario&lt;br /&gt;
&lt;br /&gt;
■ Envío de formularios (incluíndo envío de arquivos) via Ajax&lt;br /&gt;
&lt;br /&gt;
=== Obtendo valores dos controles do formulario ===&lt;br /&gt;
&lt;br /&gt;
O plugin Form proporciona dous xeitos de obter os valores dos controles do forumario: como un array de valores ou como un string serializado. Dispomos de tres métodos para obter esos valores: &amp;#039;&amp;#039;&amp;#039;fieldValue(), formSerialize() e fieldSerialize()&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Dos tres métodos anteriores o máis empregado é &amp;#039;&amp;#039;&amp;#039;formSerialize()&amp;#039;&amp;#039;&amp;#039;. Este método accede a tódolos valores do formulario e devolve unha cadea no formato empregado polo método GET para enviar os datos. Por exemplo si temos un formulario con id form1 con tres campos de texto: nome, apelidos e dni, se pomos o seguinte código:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(&amp;#039;#form1&amp;#039;).formSerialize()&lt;br /&gt;
&lt;br /&gt;
// Devolverá a seguinte cadea: nome=rafa&amp;amp;apelidos=veiga%20cid&amp;amp;dni=12345678T&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Limpando e reseteando os controles ===&lt;br /&gt;
&lt;br /&gt;
O plugin Form proporciona dous comandos que afectan ós valores dos controles. O comando &amp;#039;&amp;#039;&amp;#039;clearForm()&amp;#039;&amp;#039;&amp;#039; limpa tódolos campos, mentras que o comando &amp;#039;&amp;#039;&amp;#039;resetForm()&amp;#039;&amp;#039;&amp;#039; resetea os campos.&lt;br /&gt;
&lt;br /&gt;
¿Cal é a diferencia entón? &lt;br /&gt;
O método &amp;#039;&amp;#039;&amp;#039;clearForm()&amp;#039;&amp;#039;&amp;#039; realiza o seguinte:&lt;br /&gt;
&lt;br /&gt;
- Os campos de texto, password e textarea son axustados a valores en blanco.&lt;br /&gt;
&lt;br /&gt;
- Os campos de tipo select son deseleccionados.&lt;br /&gt;
&lt;br /&gt;
- Os campos check box e radio son desmarcados.&lt;br /&gt;
&lt;br /&gt;
Cando chamamos o método &amp;#039;&amp;#039;&amp;#039;resetForm()&amp;#039;&amp;#039;&amp;#039;, o método reset() é invocado. Isto provocará que os campos tomen os valores que teñen asignados por defecto na definición do formulario (os value que teñamos no HTML)&lt;br /&gt;
&lt;br /&gt;
=== Enviando formularios con Ajax ===&lt;br /&gt;
&lt;br /&gt;
O plugin Form introduce dos novos comandos para enviar formularios mediante Ajax: un deles que inicia unha solicitude Ajax baixo o control dun script, enviando os datos ó destino no formato solicitado, e o outro comando que controla o formulario de xeito que calquera envío é reconvertido automáticamente a unha solicitude Ajax.&lt;br /&gt;
&lt;br /&gt;
Para enviar un formulario mediante este plugin faise dun xeito moi sinxelo. Simplemente teremos que empregar o método &amp;#039;&amp;#039;&amp;#039;ajaxSubmit()&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
O método ajaxSubmit() ten varias opcións, aquí pomos un resumen das mesmas:&lt;br /&gt;
&lt;br /&gt;
[[Imagen:Propiedades-ajaxsubmit.png]]&lt;br /&gt;
&lt;br /&gt;
Exemplos de envío de datos mediante ajaxSubmit():&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Si queremos enviar o formulario sin xestionar ningunha resposta faremos:&lt;br /&gt;
   $(&amp;#039;#idformulario&amp;#039;).ajaxSubmit();&lt;br /&gt;
&lt;br /&gt;
// Si queremos cargar a resposta nun elemento  ou elementos de destino faremos:&lt;br /&gt;
   $(&amp;#039;#idformulario&amp;#039;).ajaxSubmit( { target: &amp;#039;elementosdestino&amp;#039; } );&lt;br /&gt;
&lt;br /&gt;
// Si queremos xestionar a responsa cunha función&lt;br /&gt;
   $(&amp;#039;#idformulario&amp;#039;).ajaxSubmit(function(resposta){&lt;br /&gt;
      /* facemos algo coa resposta  */&lt;br /&gt;
   });&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sin embargo hai outro xeito de enviar automáticamente (sen usar un script) o formulario mediante Ajax.&lt;br /&gt;
Para elo empregaremos a función ajaxForm(), que enlazaremos ó noso formulario.&lt;br /&gt;
&lt;br /&gt;
Vexamos un exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form id=&amp;quot;Formulario&amp;quot; action=&amp;quot;comentarios.php&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt; &lt;br /&gt;
    Name: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt; &lt;br /&gt;
    Comentarios: &amp;lt;textarea name=&amp;quot;comment&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt; &lt;br /&gt;
    &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Enviar Comentario&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt; &lt;br /&gt;
    &amp;lt;script src=&amp;quot;ruta/jquery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;
    &amp;lt;script src=&amp;quot;ruta/form.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;script&amp;gt; &lt;br /&gt;
        // Agardamos a que o DOM sexa cargado &lt;br /&gt;
        $(document).ready(function() { &lt;br /&gt;
            // enlazamos o noso &amp;#039;formulario&amp;#039; e proporcionamos unha función de retorno &lt;br /&gt;
            $(&amp;#039;#Formulario&amp;#039;).ajaxForm(function() { &lt;br /&gt;
                alert(&amp;quot;Grazas polo comentario!&amp;quot;); &lt;br /&gt;
            }); &lt;br /&gt;
        }); &lt;br /&gt;
    &amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cando o formulario é enviado o nome e comentarios serán enviados á páxina comentarios.php. Si o servidor devolve un estado de correcto, entón o usuario recibirá unha alerta de &amp;quot;Grazas polo comentario&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[http://malsup.com/jquery/form/#code-samples Ver máis exemplos de ajaxSubmit() e ajaxForm()]&lt;br /&gt;
&lt;br /&gt;
=== Enviando arquivos ===&lt;br /&gt;
&lt;br /&gt;
Unha das características do plugin Form é que automáticamente detecta aqueles formularios que necesitan enviar arquivos.  &lt;br /&gt;
&lt;br /&gt;
Debido a que non é posible enviar arquivos usando o obxecto XMLHttpRequest (XHR), o plugin Form emprega un iframe oculto creado dinámicamente para axudar nesa tarefa. Esta é unha técnica moi común, pero ten limitacións. O iframe é usado como destino do formulario, o que implica que a resposta do servidor será escrita no iframe. Isto funciona ben si o tipo de resposta é HTML ou XML, pero non funciona correctamente si a resposta é un script ou JSON, xa que ambos conteñen caracteres especiales que necesitan ser representados empregando o seu equivalente HTML.&lt;br /&gt;
&lt;br /&gt;
Para solucionar o caso anterior dos script e JSON, o plugin Form permite que estas respostas sexan representadas nun textarea, e é recomendable que o fagamos así cando fagamos envío de arquivos nos formularios. Algo a ter en conta é que si non enviamos arquivos ó servidor a solicitude empregará unha petición XHR para enviar o formulario (non un iframe). Isto fai que dependendo do envío o código do servidor ten que saber cando usar un textarea ou non. Para evitar isto podemos usar a opcion de iframe no plugin para forzar que sempre empregue un iframe co cal teremos sempre a resposta nun textarea.&lt;br /&gt;
&lt;br /&gt;
[http://malsup.com/jquery/form/#code-samples Exemplo de file upload.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Veiga|Veiga]] ([[Usuario discusión:Veiga|discusión]]) 23:10 26 ene 2015 (CET)&lt;/div&gt;</summary>
		<author><name>Veiga</name></author>
	</entry>
</feed>