J'ai été à la recherche sur le jQuery docs et je pense que nous pouvons le faire en une seule ligne à l'aide de sélecteurs:
$("#myForm :input[value!='']").serialize() // does the job!
Évidemment #myForm obtient l'élément avec l'id "myForm" mais ce qui était moins évident pour moi était d'abord que le caractère espace est nécessaire entre #myForm et :entrée, comme c'est le descendant de l'opérateur.
entrée : correspond à tous les input, textarea, select et bouton d'éléments.
[value!="] est un attribut de ne pas l'égalité de filtre. L'étrange (et utile), c'est que tout :l'entrée de l'élément de types ont de la valeur des attributs de même sélectionne et des cases à cocher, etc.
Enfin, également, de supprimer des entrées lorsque la valeur a été '.' (comme mentionné dans la question):
$("#myForm :input[value!=''][value!='.']").serialize()
Dans ce cas, la juxtaposition, c'est à dire de placer deux sélecteur d'attribut à côté de l'autre, implique une ET. À l'aide d'une virgule implique un OU. Désolé si c'est évident pour CSS personnes!