2017-05-24 1 views
0

J'ai eu ce script pour l'utiliser comme un moteur de recherche, mais quand j'ai essayé de changer le bouton pour le remplacer par un bouton style CSS (y compris fontawesome), le bouton n'appelle pas Les resultats. Je suis un débutant et ma connaissance de javascript est limitée.Des polices impressionnantes et la fonction de recherche javascript sur le clic

<form name="searchengine"> 

    <input type = text name ="keywords" placeholder ="Search..." style ="font-size:14px;hight:35px;width:240px;" value="" maxlength=40> 
    <input type = button name="go" Value=" &#x1f50d; " style ="height:30px;width:35px;" onClick="search()"> 

    </form> 

Je viens ajuster le style en ligne, mais je voudrais le remplacer par ceci:

<form name="searchengine"> 

    <input type="hidden" name="keywords" value="1"> 
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"> 
    <div class="box"> 
    <div class="container-4">  
    <input type="search" id="keywords" placeholder="Search..." />  
    <button class="icon"><i class="fa fa-search"></i></button> 

    </div>     
    </form> 

Je sais qu'il n'y a pas de fonction onclick attribuée au deuxième exemple, mais j'ai cherché partout et couldn Je n'ai pas trouvé de réponse, j'ai essayé différentes façons de le rendre "cliquable" mais sans succès. Voici quelques exemples de ce que j'ai fait. La plupart viennent de Stackoverflow.

<span onClick="myFunction()"><i class="fa fa-search"></i></span> 

    <i class="fa fa-search" onclick="search()"></i> 

Merci d'avance pour votre aide. S'il vous plaît laissez-moi savoir si vous avez besoin du script complet.

Voici le script complet. Merci de votre aide.

<html> 
<title> 
Search Engine 
</title> 
<head> 
<script> 

title = new Object(); 
desc = new Object(); 
links= new Object(); 
matched= new Object(); 
keywords= new Object(); 
found= new Object(); 
var temp=0; 
// actual location or the item to be searched // description of he location 
// actual link 
// percentage match found 
// keywords as parsed from the input 
// # of titles present in the database 
title[0]=14 
//no of keywords after parsing 
keywords[0]=0 
//no of matches found. 
found[0]=0 

<!-- Begin List of Searchable Items --> 

<!--put the list of the links and descriptions here!!--> 

title[1]="Introduction FAQs Java JavaScript beginner" 
desc[1]="JavaScript Primer (Part 1 of 2) " 
links[1]="http://www.javascriptkit.com/primer1.htm" 
matched[1]=0 

title[2]="objects document function parameter last modified date" 
desc[2]="JavaScript Primer (Part 2 of 2) " 
links[2]="http://www.javascriptkit.com/primer2.htm" 
matched[2]=0 

title[3]="alert confirm prompt box pop up dialog" 
desc[3]="Creating Alert, Confirm, and Prompt Boxes" 
links[3]="http://www.javascriptkit.com/alert.htm" 
matched[3]=0 

title[4]="event handler onClick onLoad onMouseover onMouseout onUnload" 
desc[4]="Understanding Event Handlers in JavaScript" 
links[4]="http://www.javascriptkit.com/event.htm" 
matched[4]=0 


title[5]="object model tree accessing forms " 
desc[5]="Accessing and Validating Forms Using JavaScript (Part 1 of 2)" 
links[5]="http://www.javascriptkit.com/form1.htm" 
matched[5]=0 

title[6]="form validation onBlur onSubmit" 
desc[6]="Accessing and Validating Forms Using JavaScript (Part 2 of 2)" 
links[6]="http://www.javascriptkit.com/form2.htm" 
matched[6]=0 



title[7]="date object write html setTimeout function" 
desc[7]="Creating Time Dependent Scripts using JavaScript (Part 1 of 2)" 
links[7]="http://www.javascriptkit.com/time1.htm" 
matched[7]=0 


title[8]="live clock watermark" 
desc[8]="Creating Time Dependent Scripts using JavaScript (Part 2 of 2)" 
links[8]="http://www.javascriptkit.com/time2.htm" 
matched[8]=0 


title[9]="image preload rollover effect filter" 
desc[9]="Images and JavaScript- Apples and Apples (Part 1 of 2)" 
links[9]="http://www.javascriptkit.com/image1.htm" 
matched[9]=0 


title[10]="rollover effect" 
desc[10]="Images and JavaScript- Apples and Apples (Part 2 of 2)" 
links[10]="http://www.javascriptkit.com/image2.htm" 
matched[10]=0 

title[11]="new window open secondary reload close toolbar menubar status bar " 
desc[11]="Windows and JavaScript" 
links[11]="http://www.javascriptkit.com/window.htm" 
matched[11]=0 

title[12]="frames access object multiple" 
desc[12]="Loading Two frames with one link." 
links[12]="http://www.javascriptkit.com/twoframes.htm" 
matched[12]=0 

title[13]="selection list options array text vale" 
desc[13]="I'll hava a double combo please (Part 1 of 2)" 
links[13]="http://www.javascriptkit.com/combos1.htm" 
matched[13]=0 

title[14]="combo link box jump" 
desc[14]="I'll hava a double combo please (Part 2 of 2)" 
links[14]="http://www.javascriptkit.com/combos2.htm" 
matched[14]=0 


<!-- End list of Searchable items --> 

function search(){ 
// get the input from the input by the user and strip it into keywords // 
var skeyword=document.searchengine.keywords.value.toLowerCase(); 

var check=1; 
var pos=0; 
var i=0; 
var j=0; 
var itemp=0; 
var config=''; 

while (true) 
{ 
if (skeyword.indexOf("+") == -1) 
{ 
keywords[check]=skeyword; 

break; 
} 
pos=skeyword.indexOf("+"); 
if (skeyword !="+")  
{ 
keywords[check]=skeyword.substring(0,pos); check++; 
} 
else 
{ 
check--; 
break; 
} 
skeyword=skeyword.substring(pos+1, skeyword.length); 
    if (skeyword.length ==0) 
{ 
check--; 
break; 
} 

} 
// the keywords have been put in keywords object. 
keywords[0]=check; 
//alert(check); 
// matching and storing the matches in matched 
for (i=1; i<=keywords[0];i++) 

{ 
for (j=1;j<=title[0];j++) 

{ 
if (title[j].toLowerCase().indexOf(keywords[i]) > -1) 
{ 
matched[j]++; 
} 
}  
} 
// putting all the indexes of the matched records in found 

for (i=1;i<=title[0];i++) 

{ 
if (matched[i] > 0) 
{ 
found[0]++; 
// increment the found 
found[found[0]]=i; 

}  
} 
//alert("found 0 " + found[0]); 
// sort the list as per max percentage of matches 


for (i=1;i<=found[0]-1;i++) 

{ 
for(j=i+1;j<=found[0];j++) 

{ 
if (matched[found[i]]< matched[found[j]]) 
{ 
temp= found[j]; 

found[j]=found[i]; 

found[i]=temp; 

} 
} 
} 






config='toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes' 
output = window.open ("","outputwindow",config) 
output.document.write('<title> Atlantis Direct Search Result </title>'); 
output.document.write('<BODY bgcolor=#ffffff text=#000000 link=#990099 vlink =#339966 >'); 

output.document.write('<center> <h1> Search Results </h1></center>');  
output.document.write('<hr>'); 
output.document.write(' The Keyword(s) you searched :: '.big()); 
for (i=1; i<=keywords[0]; i++) 
{ 
output.document.write(keywords[i].bold() +" "); } 
output.document.write('<br>'); 

if (found[0]==0) 
{ 

output.document.write('<hr>'); 
output.document.write("<b>No matches resulted in this search </b> <br>"); 
output.document.write("You may close the results and reduce the length/number of the keywords <br>"); 
} 
else 
{ 

output.document.write(" <hr> <b> The Results of the search are : </b> "); 
output.document.write(found[0] +" Entries found ".italics()); 
output.document.write("<table border=1 width=100%>"); 
for (i=1; i<=found[0];i++) 

{ 
output.document.write("<tr><td valign=topbgcolor=#9999ff>"); 
output.document.write("<h3>" +i +"</h3>"); output.document.write("<td valign=top>"); 
itemp=found[i]; 
output.document.write(desc[itemp].bold() +"<br>" +links[itemp].link(links[itemp])+"<br>"); 
temp= (matched[itemp]/keywords[0])*100 
output.document.write("<i> Matched with keywords :: "+temp+" % </i>"); 
matched[itemp]=0 
} 
found[0]=0; 
output.document.write("</table>"); 
} 
output.document.write ('This search was created by &copy <a href="http:\\dutta.home.ml.org"> Satadip Dutta</a> 1997'); output.document.write ("<hr>"); 
output.document.write ("<form><center>"); 
output.document.write ("<input type='button' value='Start Another Search' onClick = 'self.close()'>") ; 
output.document.write ("</center></form>"); 
output.document.close(); 
} 
</script> 
<head> 
<body bgcolor="#ffffff"> 

<center> 
<H1>Search Engine</H1> 
</center> 
<hr> 
This is a search engine implemented in Javascript. You will need a 
Java Script enabled browser to run this search. 
<hr> 
<P> 
</P> 

<TABLE BORDER=0 CELLSPACING=5 CELLPADDING=5> 
<TR> 
<TD WIDTH="20%" ALIGN="left"> 
This search is NOT case sensitive. 
</TD> 
<TD WIDTH="80%" ALIGN="left"> 
Put "+" between keywords in a list if using more than one keywords. 
</TD> 
</TR> 
</TABLE> 
<form name="searchengine"> 

<center> 
Keywords: 
<input type = text name ="keywords" placeholder ="Search..." value="" maxlength=40> 
<input type = button name="go" Value="Go ahead and find" onClick="search()"> 
<br> 
</center> 
</form> 
<hr> 

<!-- you can write more text/instructions out here. --> 
</body> 
<html> 
+1

vous devez publier votre javascript aussi. Où est définie la méthode search()? –

+0

@Eduard, désolé pour ma réponse tardive. Le script entier est juste au-dessus de ceci. Le tout premier html est le seul qui fait que la recherche renvoie les résultats en cliquant sur le bouton et en corrigeant les mots clés saisis par l'utilisateur.Le deuxième exemple html (avec la boîte de recherche de police awesome icon) est celui avec lequel j'essayais de le remplacer et je n'arrivais pas à le renvoyer aux résultats jusqu'à ce que Simon l'aide, mais il affiche tous les résultats sans mot clé. juste en montrant tout, donc il n'y a pas grand-chose à dire comme ça. –

Répondre

1

Quelques points à considérer:

  • Vous avez oublié de définir le type de votre button à submit
  • Liens sont le lieu normalement sur la <head>
  • Vous devez donner votre formulaire une action

    <head> 
    ... 
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"> 
    ... 
    </head> 
    ... 
    <form name="searchengine" action="doSomething"> 
    <input type="hidden" name="keywords" value="1"> 
    <div class="box"> 
        <div class="container-4">  
        <input type="search" id="keywords" placeholder="Search..." />  
        <button type="submit" class="icon"><i class="fa fa-search"></i></button>  
        </div> 
    </div>  
    

Hope it helps.

+0

Salut rbock ici est le script complet et si vous l'insérez simplement dans Dreamweaver il vous donnera l'aperçu avec toutes les fonctionnalités telles quelles. Je ne veux pas vraiment changer quoi que ce soit d'autre que le champ de recherche et le bouton mais quand j'ajoute le formulaire html que vous avez suggéré et que @Munzer a également dit quand je clique dessus, ça ne va nulle part (ne me donne même pas une erreur) Merci pour votre aide. –

+1

Vous devriez vraiment faire les changements qu'il décrit. Les liens vont dans la tête. Peu importe où vous les mettez mais cela s'appliquera à toute votre page de toute façon, les feuilles de style ne sont pas des scripts, ils ne se soucient pas où ils sont. De même que décrit, le formulaire doit avoir une action que votre bouton de soumission déclenche, pas un onclick pour le bouton de soumission. –

0

Ce code fonctionne très bien. Votre lien est foiré, pourquoi est-ce juste // au lieu de https: //? Vos liens devraient être dans la tête, s'ils ne sont pas, ils ne sont pas chargés avant le corps, ce qui provoque une fraction de seconde du contenu non stylé à montrer avant d'atteindre la feuille de style. Votre formulaire doit avoir une action à effectuer et votre bouton de recherche doit être de type submit, c'est donc un bouton de soumission pour le formulaire.

Le code ci-dessous et jsfiddle fonctionnent très bien si vous voulez les essayer. De plus, Dreamweaver n'est pas si impressionnant, je recommande de faire Netbeans à la place, il fait le même travail mais gratuitement (tout ce que vous voulez vraiment de votre EDI web est la complétion du code pour ne pas avoir à écrire autant, Netbeans et Dreamweaver le font aussi bien, sauf que Netbeans est meilleur pour une programmation plus complète pour toutes sortes de langages).

https://jsfiddle.net/vfmrc40k/

<html> 
<head> 
<!-- Links go in the head, they are not scripts and this makes them load before the body so that you don't get a split second of unstyled content showing --> 
    <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">  
    <script> 
    function performSearch() { 
    alert('I am searching!') 
    // Use e.g. jQuery to get the value for the search box, it's easiest 
    } 
    </script> 

</head> 
<body> 
<!-- Your form should have an action to perform, in this case a javascript function. It isn't just 'correct', it also makes it possible to press Enter to perform the search, because enter and the submit button both trigger the forms action. --> 
<form name="searchengine" action="javascript:performSearch()"> 

    <input type="hidden" name="keywords" value="1"> 

    <div class="box"> 
    <div class="container-4">  
    <input type="search" id="keywords" placeholder="Search..." />  
    <button type="submit" class="icon"><i class="fa fa-search"></i></button> 
    </div> 
    <!-- You forgot a </div> --> 
    </div>     
    </form> 
</body> 
</html> 
+0

Merci beaucoup !!! Cela sort tout. J'ai clairement besoin d'être plus attentif et de passer par plus de documentation. –

+0

Pas de problème mec :) –

+0

hé là merci pour votre aide j'ai juste une petite bosse ici: le champ de recherche appelle maintenant les résultats de la recherche, mais il ne cherche pas vraiment les mots-clés, il montre juste le tableau complet et sur le terrain " Mot-clé (s) que vous avez cherché: "ne montre rien, indépendamment de ce que vous avez tapé. Désolé d'être une douleur –