Ich habe ein Formular mit vielen Schaltflächen, die alle einen Wert in das entsprechende Textfeld drucken. Das Problem ist, dass der Wert eine ziemlich lange Textzeichenfolge ist und ich eine kürzere Variable erstellen möchte, z. 'text' und machen Sie diese Variable gleich zB. 'Ein langer Satz, den ich nur einmal eingeben möchte'. jede Idee, wie ich diesen Code bearbeiten kann, um dies zu ermöglichen

  function setInput(button, setValue) {
var buttonVal = button.value,
    textbox = document.getElementById('input_' + buttonVal);
textbox.value = setValue;

<html> 
<input type='submit' name='submit_a' value="a" 
 onclick="setInput(this,'make_me_a_variable'); return false;">
 </html>
0
user1557515 7 Okt. 2012 im 00:29

3 Antworten

Beste Antwort

Sie können eine Variable erstellen, der Variablen Ihren Langtext zuweisen und ihn verwenden, wo immer Sie möchten.

Geänderter Code

 var longText = 'long text here'.
 function setInput(button) {
     var buttonVal = button.value,
     textbox = document.getElementById('input_' + buttonVal);
     textbox.value = longText ;
 }

HTML:

<input type='submit' name='submit_a' value="a" 
 onclick="setInput(this); return false;">
0
Anoop 6 Okt. 2012 im 20:41

Anstatt den Ereignishandler im HTML-Code zu definieren, können Sie den Ereignishandler auch mit Javascript erstellen. Sie müssen dies in einem anderen Ereignishandler für document.onload tun. Wenn Sie dies früher tun, wurde das eingegebene HTML-Element möglicherweise noch nicht analysiert und erstellt, sodass kein Ereignishandler dafür hinzugefügt werden kann.

<script>
    // store your text in a variable
    var inputText = 'make_me_a_variable';
    // define some code which is executed when the page is loaded:
    document.addEventListener("load",function(event){
         // get the input by the id property I added to the HTML below.
          var input = document.getElementById('submit_a'); 
          // add an event handler for the click event (replaces the onclick HTML property)
          input.addEventListener("click",function(event) {
                setInput(this, inputText);
                return false;
          });
    });
</script>

[...]


 <input id="submit_a" type='submit' name='submit_a' value="a" >
1
Philipp 9 Jän. 2013 im 13:12
var textLookup = {
    btnName1: "Long text",
    btnName2: "Longer text"
};


// inside your function
var buttonText = ...,
    inputText = textLookup[buttonText];

// do stuff with inputText;
1
Norguard 6 Okt. 2012 im 20:39