Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   подставка фукнции для всех input (https://javascript.ru/forum/dom-window/48733-podstavka-fukncii-dlya-vsekh-input.html)

Verbal 15.07.2014 11:16

подставка фукнции для всех input
 
у меня есть функция
$(function () {
                      function log(message) {
                          $("#RegionId2").val(message)
                      }

                      $("#RegionName2").autocomplete({
                          source: "/regions-for-admin",
                          minLength: 3,
                          select: function (event, ui) {
                              log(ui.item ?
                          ui.item.id :
                          "Not " + this.value);
                          }
                      });
                  });

из неё видно что там чётко указан id input-a RegionName2
у меня input-ы добавляются автоматически
т.е. следовательно нужно что-то подобное
$(function () {
var numberInput = ??????;
                      function log(message) {
                          $("#RegionId"+i).val(message)
                      }

                      $("#RegionName"+i).autocomplete({
                          source: "/regions-for-admin",
                          minLength: 3,
                          select: function (event, ui) {
                              log(ui.item ?
                          ui.item.id :
                          "Not " + this.value);
                          }
                      });
                  });


вот где вопросы, как узнать id input-а в который вводят текст, либо мне эту функнцию при создание инпута, так же динамически добавлять?

при условии что jqury сама делает из такого
<input size="30" type="text" id="RegionName' + i + '" value="' + arr[i]["value"] + '">
такое поле
<input size="30" type="text" id="RegionName1" class="ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">

skrudjmakdak 15.07.2014 12:05

типа такого?

<html>
	<head>
		<title>example</title>
	</head>

	<body>
		<div></div>
		<input type="button" value="добавить">
		<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
		<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
		<script>
			
			function Inputs (container)
				{
				this.number = 0;
				this.prefix = 'my-input-';
				
				this.container = container;
				
				this.autocomplete = function (number)
					{
					$("#" + this.prefix + number).autocomplete(
						{
						source: "/regions-for-admin",
						minLength: 3,
						select: function (event, ui)
							{
							console.log(ui.item ? ui.item.id : "Not " + this.value);
							}
						});
					}
				
				this.addInput = function ()
					{
					++this.number;
					$(this.container).append('<input type="text" id="' + (this.prefix + this.number) + '">');
					this.autocomplete(this.number);
					}
				}
				
			var inputs = new Inputs($('div'));
			$('input[type=button]').click(function ()
				{
				inputs.addInput();
				});
		</script>
	</body>
</html>

рони 15.07.2014 12:26

:write:
$(function () {
    function log(message, id) {
        id = "#" + id.replace("Name", "Id");
        $(id).val(message)
    }
    $("[id^='RegionName']").autocomplete({
        source: "/regions-for-admin",
        minLength: 3,
        select: function (event, ui) {
            log(ui.item.value, this.id)
        }
    })
});

рони 15.07.2014 12:31

Verbal,
ui.item.id -- вы уверены что этот параметр существует?

Verbal 15.07.2014 13:41

всё разобрался сделал так
function initAutocompit(RegionId,RegionName) {
                      function log(message) {
                          $("#"+RegionId).val(message)
                      }

                      $("#"+RegionName).autocomplete({
                          source: "/regions-for-admin",
                          minLength: 3,
                          select: function (event, ui) {
                              log(ui.item ?
                          ui.item.id :
                          "Not " + this.value);
                          }
                      });
                  }

а этот парамет ui.item.id делает библиотека autocomplit

рони 15.07.2014 14:09

Цитата:

Сообщение от Verbal
а этот парамет ui.item.id делает библиотека autocomplit

http://api.jqueryui.com/autocomplete/#event-select

Цитата:

ui

Type: Object


item

Type: Object

An Object with label and value properties for the selected option.
id там никакого нет только отмеченное красным


Часовой пояс GMT +3, время: 01:23.