Tengo una tabla, un cuadro de entrada que tiene una máscara de entrada de dinero. Todavía no he tenido ningún problema con él, pero ahora parece que no funciona correctamente y no puedo obtener nada para alertarlo.

Todo esto es un problema de Internet Explorer. Funciona bien en Firefox.

En Firefox, la máscara funciona correctamente, ya que solo permite números y en un formato fijo, pero en el formato o máscara se muestra correctamente cuando está enfocado, pero una vez que comienza a escribir, los caracteres se agregan, en lugar de en lugar de la máscara. También está permitiendo caracteres no numéricos. He intentado alertar en IE, pero eso tampoco funciona. No puedo encontrar nada sobre este tema a través de google ..

Comprenderá mejor lo que está haciendo si se registra en Firefox y luego en IE. Es la celda menos avanzada en la parte inferior. o simplemente agregue #less a la url.

Proporcionaré cualquier código relevante para esto ... Aunque no recibo ningún error.

Código:


<td class="totals<cfif r EQ 1>1</cfif>"><cfif r EQ 1>Total<cfelse><input type="text" <cfif labels[r] EQ "Less Advance(if applicable)">id="less"</cfif><cfif labels[r] EQ "Net Due Employee">id="net"</cfif>id="totals" class="ttlR#r# total<cfif labels[r] EQ "Grand Total"> grandTot</cfif>" name="totals#r#" readonly="readonly" /></cfif></td>



$('#less').removeAttr("readonly").css("background-color", "none").css("text-align", "right").maskMoney({symbol: ""});

$('#less').keyup(function(){
    $('#net').val(Number($('.grandTot').val() - $('#less').val()).toFixed(2));
    alert($('#less').val());
});
//Get value of net total if page is refreshed.//
if($('#less').val() != "" || $('#less').val() != " "){
    $('#net').val(Number($('.grandTot').val() - $('#less').val()).toFixed(2));
}
0
Michael Stone 27 ago. 2009 a las 20:57

3 respuestas

La mejor respuesta

$ ('# less'). keyup (function () {$ ('# net'). val (Number ($ ('. grandTot'). val () - $ ('# less'). val ()) .toFixed (2)); alert ($ ('# less'). val ());});

Es muy probable que sobrescribas tu función de enmascaramiento con esto. Saque todo menos el enmascaramiento y luego vea si su enmascaramiento funciona. Si es así, es una de sus funciones adicionales que sobrescribe los cambios de enmascaramiento en el cuadro de entrada.

1
Russell Steen 27 ago. 2009 a las 17:39

O simplemente actualice a la versión más nueva :)

https://github.com/plentz/jquery-maskmoney

0
Diego Plentz 20 abr. 2011 a las 04:05

No parece que la máscara se esté aplicando en absoluto en IE. ¿Qué complemento estás usando para el enmascaramiento?

EDITAR

Estoy probando con IE 7.0.5730.13 y la máscara no funciona en absoluto. Centrarse y escribir en <input> no proporciona ninguna funcionalidad especial, pero arroja un error

Line:  13
Char:  12949
Error: Invalid property value.
Code:  0

¿Has intentado depurar esto con Firebug lite?

Además, debe mejorar su disciplina utilizando jQuery eficientemente. Reuse Reuse Reuse!

var $less     = $('#less')
  , $net      = $('#net')
  , $grandTot = $('#totals .grandTot')
;

$less
  .removeAttr( "readonly" )
  .css( "background-color", "none" )
  .css( "text-align", "right" )
  .maskMoney( {symbol: ""} )
;

$net.bind( 'update-total', function()
{
  $net.val( Number( parseFloat( $grandTot.val() ) - parseFloat( $less.val() ) ).toFixed( 2 ) );
} );

$less.keyup(function()
{
  $net.trigger( 'update-total' );
  alert( $less.val() );
});

//Get value of net total if page is refreshed.//
if ( $less.val() != "" || $less.val() != " " )
{
  $net.trigger( 'update-total' );
}
1
Peter Bailey 27 ago. 2009 a las 17:29