0 votes

Problème de masquage/alerting de jquery dans IE

J'ai une table et un champ de saisie qui comporte un masque de saisie d'argent. Je n'ai pas encore eu de problèmes avec ce masque, mais maintenant il ne semble pas fonctionner correctement et je ne peux pas obtenir d'alerte à partir de celui-ci.

Tout ceci est un problème d'Internet Explorer. Il fonctionne bien dans FireFox.

Dans firefox, le masque fonctionne correctement car il n'autorise que les chiffres et à un format fixe, mais dans ie, le format, ou masque, est affiché correctement lorsque vous êtes sur le focus, mais dès que vous commencez à taper, les caractères sont ajoutés, plutôt qu'à la place du masque. Il autorise également les caractères non numériques. J'ai essayé de créer une alerte dans IE, mais cela ne fonctionne pas non plus. Je n'ai rien trouvé sur ce problème dans google

Vous aurez une meilleure compréhension de ce qu'il fait si vous vérifiez dans firefox et ensuite dans IE. C'est la cellule moins avancée en bas de la page. ou simplement ajouter #less à l'url.

Je fournirai tout code pertinent à ce sujet. Bien que, je ne reçoive aucune erreur.

Code :


<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));
}

1voto

Peter Bailey Points 62125

Il ne semble pas que le masque soit appliqué du tout dans IE. Quel plugin utilisez-vous pour le masquage ?

EDIT

Je teste avec IE 7.0.5730.13 et le masque ne fonctionne pas du tout. En mettant l'accent sur et en tapant le <input> n'apporte aucune fonctionnalité particulière, mais il lance une erreur

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

Avez-vous essayé de déboguer cela avec Firebug lite ?

Vous devez également améliorer votre discipline en utilisant jQuery. efficacement . Réutiliser Réutiliser Réutiliser !

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' );
}

1voto

Russell Steen Points 4081

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

Il est fort probable que vous écrasiez votre fonction de masquage avec ceci. Supprimez tout sauf le masquage et voyez si votre masquage fonctionne. Si c'est le cas, c'est l'une de vos fonctions supplémentaires qui écrase les modifications apportées au masquage de la zone de saisie.

0voto

Diego Plentz Points 1493

Ou simplement mettre à jour la dernière version :)

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X