2010-07-12 2 views
1

Salut J'ai la fonction suivante, je dois la rendre fausse seulement si l'une des deux autres cases est cochée.Besoin d'aide avec inArray

$.validator.addMethod(
"ReutersNA", 
function(value, element) { 
    var selectedCountry = $("#Country").val(); 
    var NorthAmerica = new Array("USA","CAN","MEX"); 
    if($.inArray(selectedCountry,NorthAmerica) > -1) { 
    return true; 
    } else return false; 
    }, "Cannot select Reuters News outside of North America." 
); 

I need to add if($("#IQBAS, #IQPRE").is(":checked") && the above function = return true  

Répondre

1

Vous voulez dire quelque chose comme ça?

$.validator.addMethod( 
"ReutersNA", 
function(value, element) { 
    var selectedCountry = $("#Country").val(); 
    var NorthAmerica = new Array("USA","CAN","MEX"); 
    return ($("#IQBAS, #IQPRE").is(":checked") && $.inArray(selectedCountry,NorthAmerica) > -1); 
}, 
"Cannot select Reuters News outside of North America." 
); 
+0

@ RightSaidFred Cela renvoie toujours le message "Can not ..." si vous ne sélectionnez pas #IQBAS et ou #IQPRE. Je ai besoin pour retourner le msg seulement si vous vérifiez IQBAS et ou IQPRE –

0

nous essayons d'être un peu générique ...

$.validator.addMethod( 
"ReutersNA", 
function(value, element, params) { 
    var selectedCountry = value; 
    var NorthAmerica = new Array("USA","CAN","MEX"); 
    return (params && $.inArray(selectedCountry,NorthAmerica) > -1); 
}, 
"Cannot select Reuters News outside of North America." 
); 

alors vous pouvez l'utiliser comme

rules: { 
    Country : { 
     ReutersNA : $("#IQBAS, #IQPRE").is(":checked") 
    } 
} 
+0

Je vois comment cela fonctionne, en validant la règle contre le param en cours de vérification .... Malheureusement, il renvoie une erreur, peu importe ce qui est vérifié –

+0

... que Erreur?? – Reigel

0

Votre question était un peu claire. Je pense que vous voulez dire qu'il devrait retourner false (afficher le message) s'il est coché et que l'élément ne figure pas dans le tableau.

$.validator.addMethod( 
"ReutersNA", 
function(value, element) { 
    var selectedCountry = $("#Country").val(); 
    var NorthAmerica = new Array("USA","CAN","MEX"); 
    // Valid (true) if neither checked, or element is found in array. 
    return !$("#IQBAS, #IQPRE").is(":checked") || $.inArray(selectedCountry,NorthAmerica) > -1); 
}, 
"Cannot select Reuters News outside of North America." 
); 
+0

Je reçois cette erreur manquant; before statement [Rompre sur cette erreur] || $ .inArray (selectedCountry, NorthAmerica)> -1); \ n –

+0

@Dirty, mets les deux conditions sur la même ligne (j'ai juste modifié la réponse pour faire ça). –