переменная вставка в функцию мигания - PullRequest
0 голосов
/ 07 июня 2019

Я новичок в HTML и AJAX.Я пытаюсь вставить список ip из колбы в ajax и вызвать мигание функции js.но почему-то я не могу найти способ правильно вставить переменную ip (response [i]) в столбец значения функции.это должно вызвать мигание на нужной вкладке IP в HTML.

  function ajaxForm(){
          // var form= new FormData(document.getElementById("myform2"));
        var data = {"name":"John Doe"}
          $.ajax({
              url:"{{ url_for('Submit_form') }}",
              type:"post",
              contentType:'application/json',
              data:JSON.stringify(data),
              dataType: "json",
              processData:false,
              // async: false
              success:function(response){
                      // alert(response)
                       if (response == "success")
                           {alert("Success !!!" );}
                       else {
                         for(i in response)
                         {
                           BLINK(response[i]);

                         }
                        }
              },
              // #time out 也进入 error
              error:function(e){
                // alert(e.)
                  alert("Failed submit form trigger!!!!");

              }
          })
        }
  <script type="text/javascript">
  function BLINK(){
  var t = null;
  function blink() {
      var obj = $('input[id="IP"][value=response[i]]') . <---- here
      obj.addClass("blink-class");
      t = setTimeout(function () {
          obj.removeClass("blink-class");
          t = setTimeout(function () {
              blink(IP);
          }, 550);
      }, 550);
  }
  blink(IP);
  t = setTimeout(function () {
      clearTimeout(t);
  }, 5000);
}

1 Ответ

0 голосов
/ 07 июня 2019

Сначала вы всегда должны предоставлять также HTML-код :), потому что теперь мы не знаем, существует ли проблема.

Итак, давайте попробуем решить проблему вслепую:)

если я вижу это правильно, вы просто ошибаетесь в элементе и делаете его еще более сложным, чем он есть, поскольку вы используете jquery, потому что, если у вас есть идентификатор на вашем элементе, проверьте это:

// change this:
var obj = $('input[id="IP"][value=response[i]]') . <---- here // .. is your problem :)
  obj.addClass("blink-class");
// with the dot you add this obj, which is it self, on it self :) that cant work :)

// you can try:
var obj = $('input[value="' + response[i] + '"]') // with NO dot and no fixed ID!
  obj.addClass("blink-class");

// or try this
var obj = $('#' + response[i]);
obj.addClass("blink-class");
// and put the IP into the ID attraktion of your input element.

Вторая проблема: вы используете неопределенную переменную "ID":

blink(IP); // in your timeout function

но вы не объявляли эту переменную, поэтому, если я правильно понимаю ваш код, тогда ваш ответ [i] должен быть IP?

Ваша функция должна выглядеть следующим образом:

 function BLINK(IP) { // <-- here you need the ip as parameter for your: BLINK(response[i]) from ajax

  var t = null;

  function blink() {

      var obj = $('#' + IP) // and put IP in the id from input

      obj.addClass("blink-class")

      t = setTimeout(function () {
          obj.removeClass("blink-class");
              t = setTimeout(function () {
              blink(IP);
          }, 550);
      }, 550);

  }

  blink(IP);
  t = setTimeout(function () {
      clearTimeout(t);
  }, 5000);
}

попробуйте это, если это не работает, пожалуйста, предоставьте полный html и ваш css-код, также нам может понадобиться в конечном итоге сообщение об ошибке из консоли, вы можете увидеть это, нажав F12 в FireFox или Chrome, а затем переключитесь на вкладку консоли, затем нажмите F5, чтобы перезагрузить страницу и увидеть ошибки, также опубликуйте ее.

Или попробуйте мой jsfiddle для вас: https://jsfiddle.net/AIQIA/tjg659sr/17/

Вы должны удалить точки с вашего IP и поместить их в качестве идентификатора в ваш элемент, который вы хотите мигать, далее вам нужно удалить точки из ответа [i] или из вашего php-кода ранее, просто используйте $ip = preg_replace('/\./','',$ip);

Или используйте это, чтобы использовать только полный IP-адрес во входном значении, тогда вам не нужно удалять точки: https://jsfiddle.net/AIQIA/tjg659sr/21/

Greetz Toxi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...