Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как сделать фокус в динамически созданных полях (https://javascript.ru/forum/jquery/69909-kak-sdelat-fokus-v-dinamicheski-sozdannykh-polyakh.html)

prog77 26.07.2017 14:27

как сделать фокус в динамически созданных полях
 
Добрый день есть динамические поля https://jsfiddle.net/mvfLsmvb/3/ скажите как можно поставить курсор в только что созданное поле после нажатия кнопки добавить, что бы не жать сначала кнопку, а потом на само поле. Спасибо

Dilettante_Pro 26.07.2017 14:34

prog77,
Ошибка id="prizName" - идентификатор должен быть уникальным, тогда и фокус можно будет установить

Причем эта ошибка у вас уже была

j0hnik 26.07.2017 14:46

https://jsfiddle.net/mvfLsmvb/4/
он и одинаковым будет работать.

j0hnik 26.07.2017 14:51

можно добавить i++ чтобы получалось
id="prizName1"
id="prizName2"
...

j0hnik 26.07.2017 15:00

или так
https://jsfiddle.net/mvfLsmvb/6/

laimas 26.07.2017 15:00

Цитата:

Сообщение от j0hnik
он и одинаковым будет работать.

Точно?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>

</style> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() {
    $('#as').focus(function() {
        alert(this.value)
    });
});
</script> 
</head>
<body>
<input id="as" value="1" />
<input id="as" value="2" />
</body>
</html>

j0hnik 26.07.2017 15:03

Цитата:

Сообщение от laimas (Сообщение 459696)
Точно?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>

</style> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() {
    $('#as').focus(function() {
        alert(this.value)
    });
});
</script> 
</head>
<body>
<input id="as" value="1" />
<input id="as" value="2" />
</body>
</html>

имелось ввиду не обязательно по id фокус устанавливать.

laimas 26.07.2017 15:09

Цитата:

Сообщение от j0hnik
имелось ввиду не обязательно по id фокус устанавливать.

Тогда что это за хрень id="prizName" и $(prizName).focus();? И которая не работает конечно же.

prog77 26.07.2017 15:23

j0hnik,
спасибо

j0hnik 26.07.2017 15:26

Цитата:

Сообщение от laimas (Сообщение 459701)
Тогда что это за хрень id="prizName" и $(prizName).focus();? И которая не работает конечно же.

работает но не везде

вот более универсальное решение
$(this).parent().parent().prev().children().focus( );

laimas 26.07.2017 15:29

Цитата:

Сообщение от j0hnik
вот более универсальное решение

Слишком длинное, если учесть, что поле имеет класс.

j0hnik 26.07.2017 15:31

Цитата:

Сообщение от laimas (Сообщение 459710)
Слишком длинное, если учесть, что поле имеет класс.

не обратил внимание
тогда так
$('.form-control').last().focus();

Dilettante_Pro 26.07.2017 15:36

j0hnik,
Цитата:

Сообщение от j0hnik
вот более универсальное решение
$(this).parent().parent().prev().children().focus( );

Какое же оно более универсальное, если зависит от структуры HTML?
А по уникальному id не зависит

j0hnik 26.07.2017 15:38

Цитата:

Сообщение от Dilettante_Pro (Сообщение 459714)
j0hnik,

Какое же оно более универсальное, если зависит от структуры HTML?
А по уникальному id не зависит

ок, по классу лучше $('.form-control').last().focus();
за не имением уникального ид

laimas 26.07.2017 15:40

Цитата:

Сообщение от j0hnik
тогда так
$('.form-control').last().focus();

Уже была такая установка у предыдущего.

j0hnik 26.07.2017 17:12

Цитата:

Сообщение от laimas (Сообщение 459717)
Уже была такая установка у предыдущего.

Не пойму о чем вы. :-?

laimas 26.07.2017 17:38

Цитата:

Сообщение от j0hnik
Не пойму о чем вы

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


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