2017-08-29 1 views
2

J'ai actuellement ces deux champs de texte d'entrée avec différentes fonctions de recherche et j'essaie de faire en sorte qu'une seule fonction de recherche puisse passer après un onclick -event, en fonction de quelle entrée le champ est vide.Deux textes d'entrée avec un seul envoi autorisé

HTML;

<form onsubmit="return false" id="searchForm"> 
    <input type="text" id="searchGroup" placeholder="Search group" autocomplete="off"> 
    <input type="text"id="searchRoom" placeholder="Search room" autocomplete="off">             
</form> 

<div id="navBtns"> 
    <button type="button" class="navForward" id="plus" onclick="forward();"></button> 
    <button type="button" class="navBackward" id="minus" onclick="backward();"></button>                                                      
</div> 

C'est ce que j'ai essayé en JavaScript, mais je n'arrive pas à le faire fonctionner;

function forward() { 
    if (searchGroup.length === 0) { 
     roomForward(); 
    } else if (searchRoom.length === 0) { 
     groupForward(); 
    } 
} 

function backward() { 
     if (searchGroup.length === 0) { 
      roomBackward(); 
     } else if (searchRoom.length === 0) { 
      groupBackward(); 
     } 
    } 

Donc, l'idée est quand la saisie de texte searchGroup est vide, il exécute la fonction lorsque searchRoom a une entrée et vice versa.

Des moyens rapides et efficaces que je pourrais résoudre ce problème?

+0

Est-ce que vous déclarez 'searchGroup' et' searchRoom' comme éléments n'importe où? Vous ne pouvez pas simplement faire id.property, vous devez obtenir l'élément en utilisant l'identifiant et faire le fichier element.property. De plus, vous ne voulez pas la longueur de l'élément, vous voulez la longueur de sa valeur: 'element.value.length'. – Santi

+2

Vous devez utiliser 'searchGroup.value.length'. –

+0

@Santi 'Vous ne pouvez pas faire id.property' en fait vous pouvez dans la plupart des navigateurs comme tous les éléments avec un' id' sont placés en tant que propriétés sous la 'window'. Bien que je sois d'accord que ce n'est pas une très bonne pratique –

Répondre

1

Vous devez ajouter 'value' avant la propriété length. Cela devrait donc être "searchGroup.value.length" par exemple.