2017-10-06 3 views
0

J'utilise DataTables jQuery plugin pour afficher mes données extraites de mon service; J'ai un cas où je dois entrer un nombre et filtrer basé sur ce nombre dans une colonne quels champs peuvent contenir le premier caractère comme lettre. Je veux filtrer la colonne sans avoir de champs avec des lettres; Ex: Si j'ai dans mes valeurs de colonne comme: B123 - C753 - Je veux entrer et retour seulement 356; Est-ce possible?Colonne de filtre uniquement si le champ est un nombre (datatables)

Ci-dessous mon code:

function filterMySecondColumn() { 
    $('#my_tbl').DataTable().column(2).search(
     $('#My_Val').val(), // my value to be filtered => it is 3 in the example 
      false, 
      true 
     ).draw(); 
} 

Avec le code ci-dessus: résultat retourné sera B123 - C753 - comme ils contiennent tous .

Edit:

est Ci-dessous mon Html; Lorsque je clique sur le bouton Filtre, plusieurs fonctions à filtrer seront appelées. L'un d'eux est 'filterMySecondColumn'. S'il vous plaît noter que ma table est remplie par un service en utilisant ajax, mais ci-dessous est un modèle.

<table id="tblHeaderHomePage" class="tblHeaderHomePage" cellspacing="0" border="0"> 
    <tbody> 
     <tr id="filter_col1" data-column="0"> 
      <td class="FilterTdTitle"> 
       Column 0 
      </td> 
      <td class="FilterTdContent"> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        id="col0_filter" /> 
      </td> 
     </tr> 
     <tr id="filter_col2" data-column="1"> 
      <td class="FilterTdTitle"> 
       Column 1 
      </td> 
      <td class="FilterTdContent"> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        style="width: 85px" id="DateFrom" /> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        style="width: 85px" id="DateTo" /> 
      </td> 
     </tr> 
     <tr id="filter_col3" data-column="2"> 
      <td class="FilterTdTitle"> 
       Column 2 
      </td> 
      <td class="FilterTdContent">         
       <input type="text" class="form-control input-sm HomePage_Filter_Input" id="col2_filter" /> 
      </td> 
     </tr> 
     <tr id="filter_col4" data-column="3"> 
      <td class="FilterTdTitle"> 
       Column 3 
      </td> 
      <td class="FilterTdContent"> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        id="col3_filter" /> 
      </td> 
     </tr> 
     <tr id="filter_col5" data-column="4"> 
      <td class="FilterTdTitle"> 
       Column 4 
      </td> 
      <td class="FilterTdContent"> 
       <select class="BAN_Select_Home" id="Status_Select"> 
        <option value="All">All</option>          
       </select> 
      </td> 
     </tr> 
    </tbody> 
</table> 

<div class="BAN_HomePage_Filter_buttons_div"> 
    <input type="button" class="BAN_HomePage_Filter_buttons" onclick="filter()" value="Filter" />      
</div> 

<table id="My_tbl_init" class="display nowrap" cellspacing="0" width="100%"> 
<thead> 
    <tr> 
     <th> 
      Column 0 
      </th> 
      <th> 
       Column 1 
      </th> 
      <th> 
       Column 2 
      </th> 
      <th> 
       Column 3 
      </th> 
      <th> 
       Column 3 
      </th> 
     </tr> 
    </thead> 
    <tbody id="My_tbl"> 

    <tr> 
     <td> 
      test1 
     </td> 
     <td> 
      06/10/2017 
     </td> 
     <td> 
      B123 
     </td> 
     <td> 
      Opened 
     </td>      
    </tr> 

    <tr> 
     <td> 
      test2 
     </td> 
     <td> 
      06/10/2017 
     </td> 
     <td> 
      C789 
     </td> 
     <td> 
      closed 
     </td>      
    </tr> 

    <tr> 
     <td> 
      test3 
     </td> 
     <td> 
      06/10/2017 
     </td> 
     <td> 
      123 
     </td> 
     <td> 
      closed 
     </td>      
    </tr> 

</tbody> 
</table> 
+0

Pouvez-vous également publier votre code HTML? –

+0

Donc, vous voulez vérifier les valeurs de la colonne 2 et obtenir celles avec seulement le numéro? –

+0

Oui exactement c'était ma question –

Répondre

1
var x = //value of the column; 
if(Math.floor(x) == x && $.isNumeric(x)){ 
//do the code 
} 

Tu dois les faire passer dans une boucle, un par un, vérifier avec le code ci-dessus et obtenir une numérique sur.

Éditer: Peut-être que c'est ce que vous essayez de réaliser. il suffit de cliquer sur le bouton de filtre et voir. DEMO

+0

Exactement, mais comment puis-je obtenir la valeur de la colonne dans cette fonction? –

+0

Pouvez-vous s'il vous plaît partager html aussi bien. Je crois que ce sera simple si vous le faites. –

+0

Cela fonctionne parfaitement comme une recherche .. mais il ne peut pas travailler avec mon code ci-dessus et dessiner pour moi la table. La fonction de recherche et de tirage est appelée une fois et la table de trous est filtrée et dessinée. –