2010-01-04 7 views
1

У меня есть сценарий ajax, выполненный с использованием jquery, когда текстовое поле ввода изменяется с помощью keyup. Эта часть работает нормально. Тем не менее, я также хочу вызвать это же событие keyup, когда форма автозагружается с некоторым текстом в этом текстовом поле ввода.jquery trigger event

Я автоматически загружаю текстовое поле формы, используя php, чтобы заполнить форму с URL-адреса (получить запрос).

Мой HTML-код:

<input id="code" name="code" type="text" /> 

Мои JS:

$(document).ready(function() { 
    // doesn't work 
    // i want to execute the code in the function specified within $('#code').keyup(function() {} below. nothing happens here. 
    if ($('#code').val() != '') { 
    $('#code').trigger('keyup'); 
    } 

    // works fine 
    $('#code').keyup(function() { 
    // function code 
    } 
} 

Не уверен, что если я делаю это право. Был бы признателен, если бы кто-нибудь мог помочь мне в этом. Благодаря! :)

ответ

5

Вы должны вызвать keyup (либо с $('#code').trigger('keyup') или $('#code').keyup()), после привязки обработчика событий, а не раньше.

$(document).ready(function() { 
    $('#code').keyup(function() { 
     // function code 
    } 

    if ($('#code').val() != '') { 
     $('#code').trigger('keyup'); 
    } 
} 
+0

Большое вам спасибо! Я действительно понял, что это было так несколько минут назад. Пришел на сайт снова, чтобы сказать, что я решил его, но понял, что вы уже видели проблему. Еще раз спасибо! Я действительно потратил хорошие 3 часа, пытаясь понять это. : S – Lyon

1

Вы пробовали просто позвонить .keyup() вместо .trigger('keyup')?

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

$('#code').keyup(myFunction); 
+0

Привет, Джейсон, это именно то, что я пытался сделать, переместив код в функцию и называя его оттуда. Излишне говорить, что я столкнулся с другими проблемами, например, как я могу убедиться, что «это» внутри функции ссылается на $ ('# code'). Объявлял бы var code = $ ('# code') в функции решить эту проблему? Спасибо, в любом случае! =) – Lyon

+0

Извините, Джейсон, сказал бы вам, как правильный ответ, но K Prime был яснее для новичка, подобного мне. :) Благодаря! – Lyon

+0

Все в порядке, он прав. Рад, что ты заработал! – Jason