Как запустить событие html при вводе определённого количества символов
Дело в том, что это поле создаётся динамически, поэтому его id заранее неизвестно. Поэтому вариант if (z.value.length == 8) {... не пойдёт.
<input style="width: 100px" type="text" name="books[]" id="if1" onChange="fieldChange(this.value,this.id);" maxlength="8"/>
function fieldChange(obj,numid) {
var nid1 = '#span1_'+numid.substring(2,10);
var nid2 = '#span2_'+numid.substring(2,10);
var nid3 = '#span3_'+numid.substring(2,10);
alert('Отработала функция получив значение > ' + obj + " <<>> " + nid1);
};
|
Lobezki,
даже если ты создаёшь поле динамически, то совсем не обязательно знать его id, у тебя же есть сам объект элемента. |
Это понятно, но мне надо, что бы ajaxзапрос происходил сразу после ввода 8 символа, а если я ставлю onchange, то надо клацнуть еще раз, ч.б. запрос произошел. А без onchange я не знаю как сделать запрос из динамически созданного инпута к функции.
Так или иначе объект я получаю после лишнего клацания мышкой/клавиатурой. |
Lobezki,
Чот не пойму в чём проблема. Как ты создаёшь поле? Если сразу вставляешь html-блок кода, то пусть в нём сразу onchange будет прописан. А если динамически, то, как я уже сказал, у тебя уже есть объект элемента, вешай на него что хочешь. Зачем функцию вызываешь как fieldChange(this.value,this.id)? Не проще ли так fieldChange(this) а внутри уже получить доступ к нужным тебе id, value и прочим атрибутам. Цитата:
|
Safort,
возвращаясь к старой теме: http://javascript.ru/forum/misc/5005...vka-formy.html новое поле у меня создаётся при помощи:
$(document).ready(function() {
var AddField = $("#add_field");
var AddBook = $("#addBook");
var FClient = $("#newClient");
var f = 1;
$(AddField).click(function() {
f++;
$('<tr>')
.attr('id','tr_image_'+ f)
//.css({lineHeight:'20px'})
.append (
$('<td style="text-align: center">')
.css({paddingRight:'5px',width:'100px'})
.append(
$('<span>Книга</span>')
)
)
.append (
$('<td>')
.attr('id','td_title_'+ f)
.css({paddingRight:'5px'})
//.css({paddingRight:'5px',width:'300px'})
.append(
$('<input type="text" onChange="fieldChange(this.value,this.id);" />')
.css({width:'100px'})
.attr('id','if'+ f)
.attr('name','books[]')
)
)
.append (
$('<td>')
.append(
$('<p><span>Фамилия: <font style="color:green"><span id="span1_'+f+'"></span></font></span></p>')
)
.append(
$('<p><span>Имя: <font style="color:green"><span id="span2_'+f+'"></span></font></span></p>')
)
.append(
$('<p><span>Название: <font style="color:green"><span id="span3_'+f+'"></span></font></span></p>')
)
)
.append(
$('<td>')
.css({width:'20px'})
.append(
$('<span id="progress_'+ f +'" ><a href="#" onclick="$(\'#tr_image_'+ f +'\').remove();" class="ico_delete"><img src="img/false.png" alt="del" border="0"></a></span>')
)
)
.appendTo('#table_container')
});
});
|
Цитата:
Динамическое добавление полей работает, запросы в ajax работают, но к сожалению поле Читателя срабатывает, а поле книги нет( из-за привязки события onchange. |
Цитата:
От баттонов горит oninput вроде бы. |
| Часовой пояс GMT +3, время: 05:28. |