2010-02-04 2 views
2

У меня есть javascript, который я хочу запустить, когда скрытое поле изменено (через javascript) Есть ли способ сделать это? (Или во всяком случае у всех есть поле, которое не «видны» в осины MVC, что я могу получить событие изменения на)Как узнать, когда спрятано поле изменилось

Примечание: Я подтвердил, что это не тот факт, что поле, которое скрыто это проблема, но факт, что поле обновлено с помощью javascript! Событие изменения не срабатывает, когда я обновляю поле с помощью javascript.

Edited

Чтобы уточнить это работает:

//set up change event 
$('#154').change(function() { 
ScoringDerivation(154, 6,162,165);;                
         }); 

<select id="154" name="154"><option value="">&lt;Select&gt;</option> 
<option value="6001">Good</option> 
<option value="6002">Average</option> 
<option value="6003">Poor</option> 
<option selected="selected" value="6004">No Match</option> 
</select> 

Но это не делает:

//set up change event 
$('#165').change(function() { 
    DerivationAdd3(165,166,167,226);; 
}); 


<input id="165" name="165" type="hidden" value="0" /><label id="165Label" name="165Label">0</label> 

ответ

2

Используйте jQuery для проверки.

$('#FieldId').change(function() { alert(9); }) 

он может быть заменен или изменен. непроверенный, но я использую аналогичные.

google jQuery;

Фактически, вот источник, который вам нужен, я думаю. change()-jQuery

+0

ОК, это то, что я пробовал ... не работает. (отредактировал мой пост выше) –

+1

круто, поэтому в основном решение заключается в том, что после обновления поля с помощью javascript мне нужно запустить .change() ... –

1

Если вы работаете Javascript, чтобы изменить скрытое поле, почему бы не просто иметь, что Javascript вызывает желаемую функцию обмена?

+0

, потому что я бегу команду $ .getJSON и OnChange функция увольняют, прежде чем результаты приходят in ( –

0

У меня была эта проблема и я не смог запустить событие изменения, так как я не могу изменить код, который фактически устанавливает поле. Так вот что я сделал:

var file = $("#hidden_field_id"); 
var previous_value = file.attr("defaultValue"); 
var interval = setInterval(function(){ 
    if(previous_value != file.val()){ 
    fire_change_event(previous_value, file.val()); 
    previous_value = file.val(); 
    } 
}, 50); 
$(window).unload(function(){clearInterval(interval);}); 

Это, казалось, работали в 3-х минут тестирования я сделал;)

Смежные вопросы