Foros del Web » Programando para Internet » Jquery »

Añadir campo IE, firefox jquery

Estas en el tema de Añadir campo IE, firefox jquery en el foro de Jquery en Foros del Web. Tengo este código: Código HTML: <script type= "application/javascript" language= "javascript" src= "jquery-1.4.1.js" > </script> <script type= "application/javascript" language= "javascript" src= "jquery/jquery-ui-1.7.2.custom.min.js" > </script> <script type= ...
  #1 (permalink)  
Antiguo 09/02/2010, 05:03
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Añadir campo IE, firefox jquery

Tengo este código:

Código HTML:
<script type="application/javascript" language="javascript" src="jquery-1.4.1.js"></script>
<script type="application/javascript" language="javascript" src="jquery/jquery-ui-1.7.2.custom.min.js"></script>
<script type="application/javascript" language="javascript" src="jquery/jquery-dynamic-form.js"></script>
<script type="application/javascript" language="javascript" src="jquery/incidencias.js"></script>


<form name="form" method="post" action="incidencias.php">
<fieldset id="incid_resp">
Incidencia<br />
<textarea name="incidencia" id="incid" cols=40 rows=3></textarea><br />
Respuesta<br />
<textarea name="respuesta" id="resp" cols=40 rows=3></textarea><br />
</fieldset>
<a id="minus" href="#">[-]</a> <a id="plus" href="#">[+]</a><br />
<input type="submit" name="boton" value="Guardar" />
</form> 

El problema que tengo es que en firefox si me añade el nuevo campo pero en IE no, ¿Qué está ocurriendo? odio IE.
  #2 (permalink)  
Antiguo 09/02/2010, 05:13
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Añadir campo IE, firefox jquery

ahora el problema que tenes es que no publicaste el código jquery
  #3 (permalink)  
Antiguo 09/02/2010, 05:24
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: Añadir campo IE, firefox jquery

Te refieres al contendo del dynamic form.js?


Código:
/**
 * @author Stéphane Roucheray
 * @extends jQuery
 */

jQuery.fn.dynamicForm = function (plusElmnt, minusElmnt, options){
	var source = jQuery(this),
	minus = jQuery(minusElmnt),
	plus = jQuery(plusElmnt),
	template = source.clone(true),
	fieldId = 0,
	formFields = "input, checkbox, select, textarea",
	insertBefore = source.next(),
	clones = [],
	defaults = {
		duration:1000
  	};
	
  	// Extend default options with those provided
  	options = $.extend(defaults, options);
	
	isPlusDescendentOfTemplate = source.find("*").filter(function(){
		return this == plus.get(0);
	});
	
	isPlusDescendentOfTemplate = isPlusDescendentOfTemplate.length > 0 ? true : false;
	
	function normalizeElmnt(elmnt){
        elmnt.find(formFields).each(function(){
            var nameAttr = jQuery(this).attr("name"), 
			idAttr = jQuery(this).attr("id");

            /* Normalize field name attributes */
            if (!nameAttr) {
				jQuery(this).attr("name", "field" + fieldId + "[]");
			}
			
			if (!/\[\]$/.exec(nameAttr)) {
				jQuery(this).attr("name", nameAttr + "[]");
			}
			
            /* Normalize field id attributes */
            if (idAttr) {
				/* Normalize attached label */
				jQuery("label[for='"+idAttr+"']").each(function(){
					jQuery(this).attr("for", idAttr + fieldId);
				});
				
                jQuery(this).attr("id", idAttr + fieldId);
            }
            fieldId++;
        });
    };
	
	/* Hide minus element */
	minus.hide();
	
	/* If plus element is within the template */
	if (isPlusDescendentOfTemplate) {
		function clickOnPlus(event){
			var clone,
			currentClone = clones[clones.length -1] || source;
			event.preventDefault();
			
			/* On first add, normalize source */
			if (clones.length == 0) {
				normalizeElmnt(source);
				currentClone.find(minusElmnt).hide();
				currentClone.find(plusElmnt).hide();
			}else{
				currentClone.find(plusElmnt).hide();
			}
			
			/* Clone template and normalize it */
			clone = template.clone(true).insertAfter(clones[clones.length - 1] || source);
			normalizeElmnt(clone);
			
			/* Normalize template id attribute */
			if (clone.attr("id")) {
				clone.attr("id", clone.attr("id") + clones.length);
			}
			
			
			plus = clone.find(plusElmnt);
			minus = clone.find(minusElmnt);
			
			minus.get(0).removableClone = clone;
			minus.click(clickOnMinus);
			plus.click(clickOnPlus);
			
			if (options.limit && (options.limit - 2) > clones.length) {
				plus.show();
			}else{
				plus.hide();
			}
			
			clones.push(clone);
		}
		
		function clickOnMinus(event){
			event.preventDefault();
			
			if (this.removableClone.effect && options.removeColor) {
				that = this;
				this.removableClone.effect("highlight", {
					color: options.removeColor
				}, options.duration, function(){that.removableClone.remove();});
			} else {
			
				this.removableClone.remove();
			}
			clones.splice(clones.indexOf(this.removableClone),1);
			if (clones.length == 0){
				source.find(plusElmnt).show();
			}else{
				clones[clones.length -1].find(plusElmnt).show();
			}
		}
		
		/* Handle click on plus */
		plus.click(clickOnPlus);
		
		/* Handle click on minus */
		minus.click(function(event){
			
		});
		
	}else{
	/* If plus element is out of the template */
		/* Handle click on plus */
		plus.click(function(event){
			var clone;
			
			event.preventDefault();
			
			/* On first add, normalize source */
			if (clones.length == 0) {
				normalizeElmnt(source);
				jQuery(minusElmnt).show();
			}
			
			/* Clone template and normalize it */
			clone = template.clone(true).insertAfter(clones[clones.length - 1] || source);
			if (clone.effect && options.createColor) {
				clone.effect("highlight", {color:options.createColor}, options.duration);
			}
			normalizeElmnt(clone);
			
			/* Normalize template id attribute */
			if (clone.attr("id")) {
				clone.attr("id", clone.attr("id") + clones.length);
			}
			if (options.limit && (options.limit - 3) < clones.length) {
				plus.hide();
			}
			clones.push(clone);
		});
		
		/* Handle click on minus */
		minus.click(function(event){
			event.preventDefault();
			var clone = clones.pop();
			if (clones.length >= 0) {
				if (clone.effect && options.removeColor) {
					that = this;
					clone.effect("highlight", {
						color: options.removeColor, mode:"hide"
					}, options.duration, function(){clone.remove();});
				} else {
					clone.remove();
				}
			}
			if (clones.length == 0) {
				jQuery(minusElmnt).hide();
			}
			plus.show();
		});
	}
	
};
Lo otros dos son los jquery normales de la web.
  #4 (permalink)  
Antiguo 09/02/2010, 07:53
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Añadir campo IE, firefox jquery

Incidencias.js que es?

Mira, tener una libreria o script (dynamic form.js) no implica que el script funcione por si mismo. Hay que hacerle una llamada. Y creo que lo que te falta publicar es la llamada.

nota: en dynamicform.js no hay una seccion de document.ready.

Sería bueno que publiques el link a la pagina del plugin también, dale?
  #5 (permalink)  
Antiguo 09/02/2010, 11:16
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: Añadir campo IE, firefox jquery

Aaaa esta es la llamada que hago:

Código:
$(document).ready(function(){	
	$("#incid_resp").dynamicForm("#plus", "#minus", {limit:10});
});

y la web del autor de los forms:

http://code.google.com/p/jquery-dynamic-form/
  #6 (permalink)  
Antiguo 09/02/2010, 12:11
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Añadir campo IE, firefox jquery

Ok. Lo primera a tener en cuenta es que la demo y la version descargable son para jquery 1.3.2 ... Pero si decís que en firefox funciona, entonces está ok.

Habría que ver cuál es el error que da IE. Fijate abajo a la izquierda. Y por favor pone un link a tu pagina.

La demo funciona ok en IE8 (al menos).
  #7 (permalink)  
Antiguo 09/02/2010, 14:32
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: Añadir campo IE, firefox jquery

Aqui te dejo la dirección:

http://213.9.164.40/incidencias/incidencias.php

Es mi servidor local así que ese podría ser el problema.
  #8 (permalink)  
Antiguo 09/02/2010, 15:22
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Añadir campo IE, firefox jquery

Lo estoy probando en Opera, en Firefox y en IE8, pero no funciona para nada. Tampoco da error.

Lastima no son claros los ejemplos en la demo, no?

Lo probaste con jquery 1.3.2? Debería funcionar bien.

Última edición por mayid; 09/02/2010 a las 15:33
  #9 (permalink)  
Antiguo 09/02/2010, 17:13
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: Añadir campo IE, firefox jquery

Si, de hecho lo del cambiar el jqery fue una prueba que hice, sin funciona aparecen nuvos campos en firefox k es lo kk iero nada mas luego le boton enviar ya lo configurare.
  #10 (permalink)  
Antiguo 09/02/2010, 21:10
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Añadir campo IE, firefox jquery

En mi firefox no aparecia nada al apretar el boton +

Quizas estabas en un momento de desarrollo en donde no funcionaba. Y yo justo lo vi en ese momento.

Que será?
  #11 (permalink)  
Antiguo 10/02/2010, 07:24
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Añadir campo IE, firefox jquery

seguramente no estas llamando bien a las librerias, fijate que con tu código e incluyendo las librerias externamente funciona

Código HTML:
<html>
<head>
<meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8">
<title>Untitled</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://sroucheray.org/demo/jquery-dynamic-form/jquery-dynamic-form.js"></script>
<script type="text/javascript">

$(document).ready(function(){

	$("#incid_resp").dynamicForm("#plus", "#minus", {limit:10});

});

</script>
</head>
<body>
<form name="form" method="post" action="incidencias.php">
<fieldset id="incid_resp">
Incidencia<br />
<textarea name="incidencia" id="incid" cols=40 rows=3></textarea><br />
Respuesta<br />
<textarea name="respuesta" id="resp" cols=40 rows=3></textarea><br />
</fieldset>
<a id="minus" href="#">[-]</a> <a id="plus" href="#">[+]</a><br />
<input type="submit" name="boton" value="Guardar" />
</form>
</body>
</html> 

Última edición por Dany_s; 10/02/2010 a las 07:36
  #12 (permalink)  
Antiguo 10/02/2010, 08:13
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 10 meses
Puntos: 14
Respuesta: Añadir campo IE, firefox jquery

Gracias Dani_s ya me funciona de tu forma.Thanks.

Etiquetas: añadir, firefox, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:46.