Как сказать, когда скрытое поле изменяется - PullRequest
2 голосов
/ 04 февраля 2010

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

ПРИМЕЧАНИЕ: Я подтвердил, что проблема заключается не в том, что скрытое поле, а в том, что поле обновлено с помощью javascript! Событие изменения не срабатывает, когда я обновляю поле с помощью JavaScript.

Отредактированный

Чтобы прояснить это работает:

//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>

Ответы [ 3 ]

2 голосов
/ 04 февраля 2010

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

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

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

Google JQuery;

На самом деле, вот источник, который вам нужен, я думаю. изменение () - JQuery

1 голос
/ 04 февраля 2010

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

0 голосов
/ 28 апреля 2011

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

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 минуты тестирования, которое я проводил;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...