Заставить пользователя выбирать текст из параметров автозаполнения в динамическом поле «Добавить / удалить»

Я пишу в Java 7 и тестирую в Windows 7 с исполняемой средой Oracle, а Ubuntu - с открытым исходным кодом. Это идеально подходит для этих систем:

Путь к родительскому каталогу любого запущенного файла jar (если класс, вызывающий этот код, является прямым дочерним элементом самого архива jar):

try {
    fooDir = new File(this.getClass().getClassLoader().getResource("").toURI());
} catch (URISyntaxException e) {
    //may be sloppy, but don't really need anything here
}
fooDirPath = fooDir.toString(); // converts abstract (absolute) path to a String

Итак, путь к foo.jar будет следующим:

fooPath = fooDirPath + File.separator + "foo.jar";

Опять же, это не было протестировано ни на Mac, ни на более ранних версиях Windows

0
задан James Z 13 July 2018 в 06:26
поделиться

1 ответ

Попробуйте этот код

jQuery(document).ready(function($) {
  var wrapper = $("#username-fields");
  var add_button = $("#add-username-fields");

  var x = 1;
  var availableAttributes = [
    "John",
    "Pamela",
    "Rogers",
    "Peter"
  ];
  var previosValue='';

  add_button.click(function(e) {
    e.preventDefault();
    x++;
    var element = $('<div id="user-fields"><div class="row"><div class="col-md-5"><div class="form-group"><input type="text" class="form-control" id="user_login" name="user_login[]" placeholder=""></div></div><div class="col-md-5"><div class="form-group"><input type="text" class="form-control" name="user_role[]" placeholder=""><input type="hidden" class="form-control" name="status[]" value="Unverified" placeholder=""></div></div><div class="col-md-2"><button type="button" class="btn btn-danger" id="remove_field"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Remove</button></div></div><div class="clear"></div></div>');

    element.fadeIn("slow").find("input[name^='user_login']").autocomplete({
    autoFocus: true,
      source: availableAttributes,
    });
    wrapper.append(element);
  })
  
  wrapper.on("keyup","#user_login",function() {
    var isValid = false;
    for (i in availableAttributes) {
        if (availableAttributes[i].toLowerCase().match(this.value.toLowerCase())) {
            isValid = true;
        }
    }
    if (!isValid) {
        this.value = previousValue
    } else {
        previousValue = this.value;
    }
    
});

  wrapper.on("click", "#remove_field", function(e) {
    e.preventDefault();
    $(this).parent().fadeOut(300, function() {
      $(this).closest('#user-fields').remove();
      x--;
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<button type="button" class="btn btn-success" id="add-username-fields"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add</button>

<div id="username-fields">

</div>

3
ответ дан GansPotter 17 August 2018 в 13:42
поделиться
  • 1
    GansPotter ... Отличный ответ ... Спасибо ... :) – Minesh 13 July 2018 в 11:58
  • 2
    GansPotter ... Код совершенный, но есть некоторая ошибка ... На первом экземпляре пользователь не вынужден ... Но со второго раза он работает хорошо ... Pl решит проблему ... – Minesh 13 July 2018 в 12:26
  • 3
    Получил это ... В вашем коде была ошибка орфографии ... – Minesh 13 July 2018 в 12:48
Другие вопросы по тегам:

Похожие вопросы: