Jquery Validator – verifica a input em uma lista de valores aceitos

Eu normalmente faria isso com uma lista suspensa, mas o cliente solicitou que fosse uma input de texto …

Basicamente, eu gostaria de usar o validador Jquery para verificar se um usuário digitou uma das 50 abreviações válidas dos estados dos EUA em uma checkbox de input de texto. Se não, eles receberão um erro. Eu não consigo encontrar uma function que faz isso. Qualquer ajuda é muito apreciada!

Aqui está um método de validação que você pode adicionar para uso com o jquery validate

Primeiro você declara um validador:

jQuery.validator.addMethod("isstate", function(value) { var states = [ "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "DC", "FM", "GU", "MH", "MP", "PR", "PW", "VI" ]; return $.inArray(value.toUpperCase(), states) != -1; }, "Data provided is not a valid state"); 

Em seguida, aplique o validador

 $("#myform").validate() 

e no seu formulário você deseja adicionar a class ao elemento do formulário para verificar

  

Aqui está uma demonstração de trabalho

Você poderia usar um listener change () que simplesmente verifica a input em sua lista de strings de input válidas e só ativa os botões de envio se você tiver uma correspondência.

Em todo o caso. Para a experiência do usuário, é melhor mostrar uma lista de seleção suspensa de todos os estados possíveis. Pelo menos é o que eu pensei primeiro, quando reafirmo sua pergunta.

Saudações,

Chris

Aqui está uma solução rápida e suja:

http://jsfiddle.net/naveed_ahmad/CqXZu/1/