1

I'm trying to reverse a string and output the results using innerHTML. Nothing is output when I click the button.

    <input type="text" id="text">
    <button id="reversal">Reverse</button>
    <div id="results"></div>

<script type="text/javascript">

    var input1 = document.getElementById("text").value;
    var button = document.getElementById("reversal");
    var result = document.getElementById("results");

    var reversals = function(string) {
        result.innerHTML = string.split("").reverse().join("");
    }

    button.onlclick = function() {
        reversals(input1);
    }
</script>
Almac
  • 227
  • 2
  • 9
  • 18

2 Answers2

2

This is what you should do.

input1 = document.getElementById("text").value; should be assigned within onclick handler.

var button = document.getElementById("reversal");
var result = document.getElementById("results");

var reversals = function(string) {
    result.innerHTML = string.split("").reverse().join("");
}

button.onclick = function() {
    var input1 = document.getElementById("text").value;
    reversals(input1);
}
nikhil
  • 413
  • 3
  • 9
1

As already mentioned you have a typo, you need to change button.onlclick to button.onclick. Next when you do a refersal it still has the value of text from when the document loaded, which is empty. You need to get the new value:

button.onclick = function() {
    var input1 = document.getElementById("text").value;
    reversals(input1);
}
Spencer Wieczorek
  • 21,229
  • 7
  • 44
  • 54