J'ai besoin de trouver le type d'entrée pour les boutons radio, le texte et les sélections. Il est facile de trouver le type d'entrée de n'importe quoi avec <input type="x">
Puisque $(this).attr("type")
retournerait x
Mon problème est que je dois prendre en charge les éléments <select>
, Qui n'ont pas l'attribut type. L'objectif final est de renvoyer la radio, le texte ou la sélection.
J'ai pensé à faire quelque chose comme ça, mais j'étais curieux de savoir s'il y avait une meilleure façon:
if ($(this).tagName == "input") {
var result = $(this).attr("type"); //returns radio or text (the attr type)
} else {
var result = $(this).tagName; //returns select (the element type)
}
Merci a tous!
Vous pouvez le faire ( violon ici ), faire une sorte de plugin facile à utiliser:
$.fn.getType = function(){ return this[0].tagName == "INPUT" ? this[0].type.toLowerCase() : this[0].tagName.toLowerCase(); }
Et utilisez-le comme ça
$(".element").getType(); // Will return radio, text, checkbox, select, textarea, etc (also DIV, SPAN, all element types)
$(".elList").getType(); // Gets the first element's type
Qui obtiendra le type du premier élément sélectionné.
Autres informations
Si vous voulez juste avoir des sélecteurs, vous pouvez utiliser ceci:
$("input:text, input:radio, select");
Ou sélectionnez tous les contrôles de formulaire ( plus d'informations ):
$(":input") // can return all form types
Tous les types de boîtes de saisie et de sélection de boîtes se réunissent par jQuery find:
$('#myForm').find('select,input').each(function(i,box){
alert($(box).attr('name'));
}