jQuery Mobile - Menu de seleção de texto de filtro
Descrição
Defina o atributo data-filtertext em qualquer um dos filhos (elemento <option>), que será considerado para filtragem.
Exemplo
O exemplo a seguir demonstra o uso do menu de seleção de texto de filtro no jQuery Mobile.
<!DOCTYPE html>
<html>
<head>
<meta name = "viewport" content = "width = device-width, initial-scale = 1">
<link rel = "stylesheet" href = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src = "https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script>
$.mobile.document
.on( "selectmenucreate", ".filterable-select", function( event ) {
var input,
selectmenu = $( event.target ),
list = $( "#" + selectmenu.attr( "id" ) + "-menu" ),
form = list.jqmData( "filter-form" );
if ( !form ) {
input = $( "<input data-type='search'></input>" );
form = $( "<form></form>" ).append( input );
input.textinput();
list
.before( form )
.jqmData( "filter-form", form ) ;
form.jqmData( "listview", list );
}
selectmenu
.filterable({
input: input,
children: "> option[value]"
})
.on( "filterablefilter", function() {
selectmenu.selectmenu( "refresh" );
});
})
</script>
</head>
<body>
<h2>Filter Text Selectmenu Example</h2>
<form>
<div class = "ui-field-contain">
<label for = "filter">Basic</label>
<select id = "filter" data-native-menu = "false" class = "filterable-select">
<option value = "de" data-filtertext = "Delhi">Delhi</option>
<option value = "pu" data-filtertext = "Punjab">Chandigarh</option>
<option value = "ch" data-filtertext = "TamilNadu">Chennai</option>
<option value = "mu" data-filtertext = "Maharastra">Mumbai</option>
</select>
</div>
</form>
</body>
</html>
Resultado
Vamos realizar as seguintes etapas para ver como o código acima funciona -
Salve o código html acima como selectmenu_filter_text.html arquivo na pasta raiz do servidor.
Abra este arquivo HTML como http: //localhost/selectmenu_filter_text.html e a seguinte saída será exibida.