[JQuery] hidden i change

0

Witam czy zdarzenie change bedzie działało dla elementów typu hidden?

<input type="hidden" id="post_id" value="123">
$("#post_id).change(function()
{
alert('asd');
});

Takie cos nie działa, jest może jakiś sposób na uzyskanie tego efektu?

0

A w którym momencie następuje zmiana atrybutu value tego elementu? Użytkownik sam z siebie tego nie zmieni wartości, skoro to jest ukryty input ( no, chyba, że używa Firebuga ;) ).
Zatem, bindowanie zdarzeń raczej nic nie da. Jest natomiast pewne obejście które korzysta z namiastki programowania wielowątkowego w JS.

var postid_value = document.getElementById("post_id").value;
setInterval(function(){ 
  if (document.getElementById("post_id").value != postid_value)
  {
    postid_value= document.getElementById("post_id").value;
    postid_onchange();
  }

}, 10);

postid_onchange = function()
{
 // ... twój kod
};

Wygląda to tak: w zmiennej value zapisujesz aktualną wartość atrybutu value. Następnie, za pomocą setInterval tworzysz funkcję, która będzie wywoływać się co ~10 milisekund. W tej funkcji sprawdzasz czy nastąpiła zmiana - po prostu porównując aktualną wartość elementu z wartością, która została wcześniej zapisana. Jeśli te wartości będą różne, to wykonuje się funkcja postid_onchange, a do zmiennej value zostanie zapisana nowa wartość tego elementu.

0

W sumie chodziło mi o skryptowe zmienienie wartości. Nie wiem czy zdarzenia też to uwzględniają

1 użytkowników online, w tym zalogowanych: 0, gości: 1