Как мне выполнить функцию в JavaScript, когда пользователь вводит определенную строку в форме поиска html

#javascript #html #forms #terminal #frontend

#javascript #HTML #формы #терминал #интерфейс

Вопрос:

Я новичок в stack Overflow, но я действительно хороший разработчик. У меня есть вопрос о том, как выполнить функцию, когда пользователь изменяет строку в строке поиска html. Вот мой код:

HTML:

 <div class="search search--open">

       <form class="search__form" action=""><input class="search__input"id="search__input" name="search" type="text" placeholder="Command Line"autocomplete="off"autocorrect="off"autocapitalize="off"spellcheck="false"></form>

            <div class="terminal">
                <p class="terminal__line">Welcome:<span class="green"><</span><span class="green" id="ip"></span><span class="green">></span></p>
                <p class="terminal__line">How's the weather in: <span class="country green"></span>?</p>
                <p class="terminal__line">Panel interface completed.</p>
                <p class="terminal__line">Navigation portals fetched:</p>
                <p class="terminal__line"><a href="#">#home</a></p>
                <p class="terminal__line"><a href="#">#blog</a></p>
                <p class="terminal__line"><a href="#">#codelab</a></p>
                <p class="terminal__line"><a href="#">#contact</a></p>
                <p class="terminal__line"><a href="#">#gethacked</a></p>
                <p class="terminal__line"><a href="#">#aboutme</a></p>
                <p class="terminal__line"><a class="out" href="#">#_instagram</a></p>
                <p class="terminal__line">Inject <a href="#">Help.md</a> to C:Users<span class="console"></span></p>
                <p class="terminal__line">\<span class="console"></span><a href="#">C:UsersPublicHelp.md</a> > In order to navigate click on the links above or type the section you would like to access e.g: "home"</p>
        <p class="terminal__output"></p>
            </div>

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/easing/EasePack.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenLite.min.js"></script>

        </div>
  

JavaScript:

 //FIND IP

        function findIP(onNewIP) { //  onNewIp - your listener function for new IPs
          var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome
          var pc = new myPeerConnection({iceServers: []}),
            noop = function() {},
            localIPs = {},
            ipRegex = /([0-9]{1,3}(.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
            key;

          function ipIterate(ip) {
            if (!localIPs[ip]) onNewIP(ip);
            localIPs[ip] = true;
          }
          pc.createDataChannel(""); //create a bogus data channel
          pc.createOffer(function(sdp) {
            sdp.sdp.split('n').forEach(function(line) {
              if (line.indexOf('candidate') < 0) return;
              line.match(ipRegex).forEach(ipIterate);
            });
            pc.setLocalDescription(sdp, noop, noop);
          }, noop); // create offer and set local description
          pc.onicecandidate = function(ice) { //listen for candidate events
            if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
            ice.candidate.candidate.match(ipRegex).forEach(ipIterate);
          };
        }

function addIP(ip) {
  console.log('got ip: ', ip);

    var theIp = document.getElementById('ip');
    var theConsole = $('span.console');
    var texted = ip;

  theIp.textContent = ip;



    theConsole.html(texted);

}

findIP(addIP);

//FIND LOCATIOn


$.getJSON('https://ipapi.co/' $(ip).val() '/json', function(data){

      $('.country').text(data.country);
  });


    (function() {

        var theConsole = $('span.console');
        var texted = $("#ip").text();

        theConsole.html(texted);
    });

var search_form = document.getElementsByClassName('search__form');
console.log(search_form);



function createHome(){

  var homeDiv = document.createElement('div');
        homeDiv.innerHTML = '<div class="home_container"><h2>I am hungry</h2><p>Shall we go eat?</p><div class="close_home" href="">x</div></div>';
        homeDiv.setAttribute('class', 'home');
        document.body.appendChild(homeDiv);

        $('.close_home').click(function(){
            $('.home').remove();
            console.log('Home Erased');
        });


}


var navigationLink = $('.terminal__line a');

navigationLink.click(function(e){
  if ($(this).hasClass('out')) {
    window.open('http://instagram.com/arcticben.co.uk');
  }else
  {
  createHome();
  }
});




    $(search_form).submit(function( event ) {
      if ( 'aboutme' === $( "input" ).val() || 'codelab' === $( "input" ).val() ||  'contact' === $( "input" ).val() || 'gethacked' === $( "input" ).val() || 'blog' === $( "input" ).val() || 'home'  === $( "input" ).val()) {

    createHome();

      } else if ( $( "input" ).val() === "instagram" ) {
                window.open('http://instagram.com/arcticben.co.uk');
        } else if ($( "input" ).val() === "ipconfig") {

        var binder = $('input').val();
        var terminal_div = document.getElementsByClassName('terminal');
            $('.terminal').addClass("binding");
        var theipagain = $('#ip').html();

        var ipconfig = document.createElement('p');
              $(ipconfig).text('ipconfig: '   theipagain);
              ipconfig.setAttribute('class', 'terminal__line');
              $(ipconfig).appendTo(terminal_div);
              console.log(ipconfig.length);

      }

        var binder = $('input').val();
        var terminal_div = document.getElementsByClassName('terminal');
                $('.terminal').addClass("binding");

        var commands = document.createElement('p');
                    commands.innerHTML = ('Execute: '   binder);
                    commands.setAttribute('class', 'terminal__line');
                    $(commands).appendTo(terminal_div);





      event.preventDefault();
});



})(window);
  

Я хочу использовать строку поиска html для обновления выходных данных терминала:

 <p class="terminal__output"></p>
  

используя форму поиска в html.

Цель состоит в том, чтобы заставить JavaScript изменять вывод терминала на основе того, какая команда введена. Кто-нибудь, пожалуйста, может помочь!

Комментарии:

1. Добавьте прослушиватель событий для события ввода и сравните значение с любой строкой, которую вы хотите. Если она совпадает, выполните функцию

2. Что вы имеете в виду, говоря, совпадает ли это. Соответствует ли она требованиям поиска?

3. Когда она соответствует вашей «определенной строке»