2017-03-08 1 views
2

Ich habe mehrere Tasten, die alle etwas sehr ähnliches tun. Wie benutze ich eine <select> Box mit einer <button>, um dasselbe mit weniger Javascript zu machen?Konvertieren "Same" Mehrere <Button> Funktionen zu Generic-Funktion mit <Select>

Dies sind die Tasten I mit nur einer Taste in eine <select> Box machen wollen:

<button onclick="SaveAsHTML()">Save As HTML</button> 
<button onclick="SaveAsJS()">Save As JS</button> 
<button onclick="SaveAsCSS()">Save As CSS</button> 
<button onclick="SaveAsTXT()">Save As TXT</button> 

Hier mein Javascript jetzt ist:

function SaveAsHTML() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".html"; 
} 

function SaveAsCSS() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".css"; 
} 

function SaveAsJS() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".JS"; 
} 

function SaveAsTXT() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".txt"; 
} 
+0

Danke für meine Antwort verkürzen auf. Ich denke, mein Englisch ist nicht so gut, wenn man über Codes spricht. Danke ... @jcuenod – SeekLoad

Antwort

1

Hier ein Ausschnitt ist, Ich denke nicht, dass es viel Erklärung benötigt.

Ich habe ein Array von Dateitypen erstellt und jquery verwendet, um die <select> mit <option> s zu füllen. Dann suche ich gerade nach oben, die man gewählt, wenn Sie auf die Schaltfläche save Taste ...

var types = [ 
 
    {"extension": "html", "name": "HTML"}, 
 
    {"extension": "txt", "name": "Plain Text"}, 
 
    {"extension": "js", "name": "Javascript"}, 
 
    {"extension": "css", "name": "CSS"}, 
 
] 
 
types.forEach(function(type) { 
 
    $opt = $("<option>").attr("value", type.extension).text(type.name) 
 
    $("#saveas").append($opt) 
 
}) 
 

 
function SaveAsType() 
 
{ 
 
    console.log($("#saveas").val()) 
 
    /** 
 
    * Put your code here and replace: 
 
    document.getElementById("inputFileNameToSaveAs").value + ".html"; 
 
    * with 
 
    document.getElementById("inputFileNameToSaveAs").value + "." + $("#saveas").val(); 
 
    */ 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Save as <select id="saveas"> 
 
</select><button onclick="SaveAsType()">save</button>

+0

Danke, Bruder. Es funktioniert perfekt. Jetzt frage ich mich, gibt es einen Weg, es zu tun, ohne "jquery" zu verwenden? Wenn nicht, dann benutze ich einfach jQuery, aber ich möchte, dass es möglichst unabhängig von jQuery ist. Leider kann ich dir kein Like geben, da ich über 15 Reputation benötige und im Moment habe ich nur 11. Das ist, weil ich gerade angefangen habe, diese Seite zu benutzen. Ich hatte diesen Account schon sehr lange Zeit, aber ich habe ihn bis jetzt noch nie benutzt. – SeekLoad

+0

@SeekLoad Sie sollten in der Lage sein, die Antwort mit einem rep von 11 zu akzeptieren. Es ist einfach, dies ohne jquery zu tun - ich benutze nur jquery, um die '' Element, wie Sie wollen. Ich habe jquery benutzt, weil du deine Frage mit jquery markiert hast. – jcuenod

+0

@SeekLoad auch, ich habe Ihre Frage wesentlich bearbeitet, um Ihnen zu zeigen, wie Sie in Zukunft bessere Fragen stellen können. Versuchen Sie, Ihren Code auf das Wesentliche zu reduzieren, um die Beantwortung der Frage zu erleichtern. Wenn möglich, machen Sie es zu einer Art von Frage, die Antworten erhält, von denen andere profitieren können. – jcuenod

Verwandte Themen