Автозаполнение jQuery

123 4
J
На сайте с 02.02.2009
Offline
53
#11


<script>
function x(x){
document.getElementById('b').value = x.value;
}
</script>

Введи значение и сними фокус с поля: <input type='text' id='a' onBlur='x(this)'><br>
Получили значение:<input type='text' id='b'><br>

запусти это у себя на локалхосте

это то что надо? То есть при заполнении одного поля обновляется другое, в зависимости от первого?

SaM 1001
На сайте с 12.03.2009
Offline
2
#12

во, точно в цель, я не смог так описать проблему, чтоб обновлялось от первого поля!!!

Сейчас попробую с этой функцией! Спасибо!

J
На сайте с 02.02.2009
Offline
53
#13

Это просто пример

сама функция не сделает ничего кроме того, что делает сейчас на конкретном примере=)

Но, соответственно, я так понимаю, что ты вкурил куда копать - onBlur событие - это когда пропадает фокус из поля ввода

Соответственно, с jQuery работать с этим проще - можно цепляться по чему угодно. Например, в параметре ты передаешь this и "номер" идентификаторов которые надо будет обновлять

т.е.

onBlur=fillUp(this,0)

...

function fillUp(o,i){

// заполняем второе поле произвольным значением

$("#field1_"+i).val('....');

// заполняем третье поле значением первого поля

$("#field1_"+i).val($(o).val());

}

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

SaM 1001
На сайте с 12.03.2009
Offline
2
#14

Да, обжёгся сейчас на примере, оказалось что не работает:-)

А если не менять фокус, а через

$("#myForm input[name='badge0']").keyup(function(){

вот так например, потому-что не обязательно заходить с то поле которое на автомате должно заполниться

J
На сайте с 02.02.2009
Offline
53
#15

У меня в FireFox пример работает - как только делаешь клик куда угодно из первого поля - второе заполняется=)

А в случае с KeyUp - будет достаточно большая часть "браузерной" работы - то есть при каждом KeyUp надо будет проверять - достаточно ли данных в поле, чтобы начать заполнять поля, относящиеся к этому полю.

В общем, если задача именно такая - что человек должен сам заполнить первые поля в структуре - то лучше делать OnBlur ИМХО. Если же задача - автоматически наполнить уже готовыми данными поля - то это уже другая песня.

Попробуй сформулировать мысль точно-точно, - представь, что дошкольнику пытаешься обьяснить=) - часто во время хорошего формулирования задачи автоматически приходит ответ=)

SaM 1001
На сайте с 12.03.2009
Offline
2
#16

Хорошо, у меня к каждому номеру позвязана определённая информация. "Проверку" на валидность номера я делаю через автозаполнение. jQuery выберает из погруженных в спрятанный див номер и садит его в поле. Еси был выбран определённый номер, то в другое поле должна встать информация привязаная к нему. Пример как на собаках:

поле 1 поле 2 поле 3

Кличка -> порода -> хозяин

Кличка1 -> порода1 -> хозяин1

или моём случае вот так

12345 -> TEST -> 17.03.2009

12346 -> TEST -> 16.13.2009

J
На сайте с 02.02.2009
Offline
53
#17

А как происходит само автозаполнение-то?

Человеческие действия происходят какие-либо?

SaM 1001
На сайте с 12.03.2009
Offline
2
#18

вот перепаковал страницу, сейчас автозаполнение работает как надо

zip SAM_01.zip
SaM 1001
На сайте с 12.03.2009
Offline
2
#19
jumash:
У меня в FireFox пример работает - как только делаешь клик куда угодно из первого поля - второе заполняется=)

Покажи на своём примере, как ты это делаешь, может подправлю под свою "болячку"

J
На сайте с 02.02.2009
Offline
53
#20

Я не поленился почитать документацию, и это оказалось и вправду интересно!=))

У твоего случая есть штатное документированное решение


$("#myForm input[name='badge0']").result(function(event, data, formatted) {
if(formatted){
$("[name=UpInformation0]").val('123');
}
});

вставь это после $("this").scrollTop(); и расскажи о впечатлениях

Документация -

http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions

http://docs.jquery.com/Plugins/Autocomplete/result#handler

UPD:: соответственно, среагирует только на первое поле=)

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий