Foros del Web » Programando para Internet » Javascript »

Problema con grabar item de combobox en Explorer

Estas en el tema de Problema con grabar item de combobox en Explorer en el foro de Javascript en Foros del Web. Hola, mi problema es que no se graba el item que selecciono en el combobox, una vez seleccionado le pongo grabar y cuando regreso al ...
  #1 (permalink)  
Antiguo 05/12/2008, 14:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 4 meses
Puntos: 0
Mensaje Problema con grabar item de combobox en Explorer

Hola, mi problema es que no se graba el item que selecciono en el combobox,
una vez seleccionado le pongo grabar y cuando regreso al form en modo de lectura aparece en blanco; eso solo me sucede en Explorer por que en Mozilla si funciona bien.
Quisiera saber que podría cambiar o hacer para que puede funcionar en Explorer.

Esta es la parte donde obtengo el dato seleccionado


<select name="some" id="application" >
<xsl:for-each select="/PTLAdditionalInformation/Parameters/data">
<option>
<xsl:attribute name="value"><xsl:value-of select="@name"/></xsl:attribute>
<xsl:attribute name="onchange"><xsl:value-of select="$dynFormHandler" />.setNodeById('7', this.value)</xsl:attribute>
<xsl:value-of select="@name"/>
</option>
</xsl:for-each>
</select>


Y esta la manera como lo recupero para mostrarlo


<xsl:element name="text"><xsl:value-of select="//Application" /></xsl:element>

Cualquier ayuda se los agradecería.
Saludos
  #2 (permalink)  
Antiguo 06/12/2008, 01:23
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con grabar item de combobox en Explorer

Si colocás el html resultante de eso tal vez podamos entender tu problema y ayudarte.
  #3 (permalink)  
Antiguo 10/12/2008, 14:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con grabar item de combobox en Explorer

Hola, el resultado de eso es un combo q tiene x default el Optional Selection y como opciones el Primary y Secondary.

Ahi te muestro la parte q va en el template, donde indico q variables hay


<?xml version="1.0" encoding="UTF-8"?>
<PTLAdditionalInformation>
<Application id="1" />
<Parameters>
<data name="- Optional Selection -"/>
<data name="Primary Service Line"/>
<data name="Secondary Service Line"/>
</Parameters>
</PTLAdditionalInformation>


Esta es la parte del edit completa


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xalan="http://xml.apache.org/xslt" xmlns:tns="http://www.w3.org/1999/xhtml">
<xsl:param name="dynFormHandler" select="'dynForm'" />
<xsl:param name="xmlContainerId" select="'txt_DynFormXML'" />
<xsl:template match="/">
<table border="0" style="font-size: 11px">
<tr>
<td>
<label class="tlabel">Application</label>
</td>
<td>
<select name="some" id="application" >
<xsl:for-each select="/PTLAdditionalInformation/Parameters/data">
<option>
<xsl:attribute name="value">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:attribute name="onclick">
<xsl:value-of select="$dynFormHandler" />.setNodeById('1', this.value)
</xsl:attribute>
<xsl:value-of select="@name"/>
</option>
</xsl:for-each>
</select>
</td>
</tr>
</table>
<br />
</xsl:template>
</xsl:stylesheet>


Y esta es la parte de Read


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xalan="http://xml.apache.org/xslt" xmlns:tns="http://www.w3.org/1999/xhtml">
<xsl:param name="dynFormHandler" select="'dynForm'" />
<xsl:param name="xmlContainerId" select="'txt_DynFormXML'" />
<xsl:template match="/">
<div class="hrule-dots"></div>
<br />
<table border="0" style="font-size: 11px">
<tr>
<td>
<label class="tlabel">Application</label>
</td>
<td>
<xsl:element name="text">
<xsl:value-of select="//Application" />
</xsl:element>
</td>
</tr>
</table>
<br />
</xsl:template>
</xsl:stylesheet>


Espero sea mas entendible :D
Gracias
  #4 (permalink)  
Antiguo 10/12/2008, 14:51
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con grabar item de combobox en Explorer

Eso es lo que aparece en tu navegador cuando usás la opción ver código fuente?
  #5 (permalink)  
Antiguo 16/01/2009, 16:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con grabar item de combobox en Explorer

Hola, en si el error es en un pequeño subform de la página, y el código de la página es regular por eso lo que te agrego a continuación es lo que aparece referente a ese form.


<script language="JavaScript" type="text/javascript">
OATS.dynamicForm={};
OATS.dynamicForm.XSLURL='/tools/oats/testing/ap/china/oatscnapp.nsf/OATSDynamicForms/PTLAdditionalInformationV2.0?openDocument&get=xsl-edit';
OATS.dynamicForm.callback=function() {
YAHOO.util.Event.addListener("strategy", "change", validateSelection);
YAHOO.util.Event.addListener("financial", "change", validateSelection);
YAHOO.util.Event.addListener("supply", "change", validateSelection);
YAHOO.util.Event.addListener("customer", "change", validateSelection);
YAHOO.util.Event.addListener("human", "change", validateSelection);
YAHOO.util.Event.addListener("application", "change", validateSelection);
YAHOO.util.Event.addListener("innovation", "change", validateSelection);
function validateSelection(e){
var objData = this;
var dataContent=objData;
var allCombos = document.getElementsByTagName('select');

for(j=0;j<allCombos.length;j++)
{
var strCurrent = allCombos[j].id;
if(strCurrent=='financial'||strCurrent=='strategy' ||strCurrent=='supply'||strCurrent=='customer'||st rCurrent=='human'||strCurrent=='application'||strC urrent=='innovation')
{
var tempObject = allCombos[j];
if(tempObject.id != objData.id)
{
if(dataContent.value=="Primary Service Line" && tempObject.value == "Primary Service Line"){
tempObject.selectedIndex=0;
}
}

}
}
}
}
YAHOO.util.Event.onAvailable('txt_DynFormXML',
function() {
if ( ! (OATS.dynamicForm.controller instanceof OATSDynamicFormController) ) {
OATS.dynamicForm.controller = new OATSDynamicFormController( document.getElementById('txt_DynFormXML'), OATS.dynamicForm.XSLURL, 'OATS.dynamicForm.controller');
OATS.dynamicForm.controller.appendXSLParameter('is CCMSEnabled', OATS.formUtils.ccmsEnabled);
OATS.dynamicForm.controller.appendXSLParameter('en ableManualEntry', (OATS.formUtils.ccmsEnabled=='Yes' ? 'No' : 'Yes') );
OATS.dynamicForm.controller.appendTransformCallbac k(OATS.dynamicForm.callback);
OATS.dynamicForm.controller.appendTransformCallbac k(OATS.dom.validateTextAreaTags);
OATS.dynamicForm.controller.appendTransformCallbac k(OATS.dom.validateInputTextTags);
OATS.dynamicForm.controller.refreshDynHTML( document.getElementById('OATSDynamicFormContainer' ) );
}
})
</script>


y esto tambien:

<textarea name="txt_DynFormXML" id="txt_DynFormXML" style="display:none" cols="60" rows="10" ><?xml version="1.0"?>
<PTLAdditionalInformation>
<ProductSafety id="rb_ps">Yes</ProductSafety>
<SarAssessment id="rb_sar">Yes</SarAssessment>
<Strategy id="1"/>
<Financial id="2"/>
<Supply id="3"/>
<Customer id="4"/>
<Innovation id="5"/>
<Human id="6"/>
<Application id="7"/>
<Parameters>
<data name="- Optional Selection -"/>
<data name="Primary Service Line"/>
<data name="Secondary Service Line"/>
</Parameters>
</PTLAdditionalInformation>
</textarea>




Le cambie el "onclick" que uso para setear el valor que quiero grabar del combobox, por un "onchange" pero el problema persiste y no graba en Explorer espero tengan alguna idea para poder solucionarlo.
Gracias
  #6 (permalink)  
Antiguo 17/01/2009, 03:19
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Problema con grabar item de combobox en Explorer

Hola,

No estoy seguro pero posiblemente te sea de utilidad ...

YAHOO.util.Event posiblemente use addEventListener como un wrapper del addEventListener de Javascript, pero addEventListener de Javascript no funciona en IE.

Si fuera un wrapper, y lo convierte en attachEvent de IE, entonces el nombre de la función en addEventListener sería 'onchange' y no 'change'. Y creo que el comportamiento de 'this' es diferente.

Saludos,

No se en que momento aplicas las plantillas al XML pero, el código del las "2" XSLT tiene algunos errores, creo . Igual NO estoy seguro.

Última edición por HackmanC; 17/01/2009 a las 03:27 Razón: 'this'
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 09:14.