2010-01-28 5 views
0

J'essaie de valider un champ appelé promoRent, si seulement un nombre est entré. Ce n'est pas un champ obligatoire mais s'il est entré, il doit être supérieur au lotRent. J'ai:une autre question de validation jquery

jQuery.validator.addMethod("PRgreaterThanLotRent", function(value, element) { 
    return parseFloat($("#lotRent").val().replace(/[^\d\.]/g, '').replace(['.00'],''))  < parseFloat($("#promoRent").val().replace(/[^\d\.]/g, '').replace(['.00'],'')); 
}); 


    $("#pricingForm").validate({ 
    rules: { salesPrice: "required", 
    Rent: { required: true, greaterThanLotRent : true }, 
    promoRent : { required: function() { if ($("#promoRent").val() != '') { PRgreaterThanLotRent : true }; } } 
}, 
    messages: { salesPrice: "<br/><span style='color:red'>Required!</span>", 
    mhRent: { required: "<br/><span style='color:red'>Required!</span>", 
     MHgreaterThanLotRent : "<br/><span style='color:red; '>Must be greater<br> than Lot Rent</span>" } , 
    promoRent : { required: "", 
     PRgreaterThanLotRent : "<br/><span style='color:red; '>Must be greater<br> than Lot Rent</span>" } 
} 
}).form(); 

Je suis en train de faire quelque chose de stupide que la validation ne fonctionne même si j'entre pas une quantité moindre que le lotrent. des idées? Merci d'avance.

Répondre

0

cela fonctionne très bien.

,promoRent : { PRgreaterThanLotRent : true } 

puis modifié la fonction PRgreaterThanLotRent comme suit:

jQuery.validator.addMethod("PRgreaterThanLotRent", function(value, element) { 
     if ($("#promoRent").val() != '') {             
     return parseFloat($("#lotRent").val().replace(/[^\d\.]/g, '').replace(['.00'],'')) < parseFloat($("#promoRent").val().replace(/[^\d\.]/g, '').replace(['.00'],'')); 
     } else { 
     return true; 
     } 
    }); 

sweeeeeeet ...