Wpis z mikrobloga

#programowanie #pomocy #javascript

Mam takiego inputa (automat wygenerowany w Yii):

<?php echo $form->textField($model,'pesel',array('size'=>45, 'onKeyUp'=>"ParsePesel();")); ?>


Podpatrzyłem go w firebugu, i ma on id "Participantpesel".

Chcę teraz wyciągnąć wartość z tego textfielda w metodzie "ParsePesel()".

Próbowałem:

document.getElementById("Participant
pesel").value;

$('#participantpesel').val();

Pierwszy zwraca pusty ciąg, drugi "undefined".

Gdy dodam do textfielda inne id, to działa, ale wtedy nie chodzi model zapisu do bazy.

W jaki sposób inaczej wyciągnąć wartość z tego textfielda?

Pewnie rozwiązanie jest proste, tylko ja upośledzony.
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kowad: 1) ustaw sobie odpowiednie id w Yii, w tym kodzie nie ma nic o id = "Participantpesel", więc albo to nie to pole, albo coś namieszane jest dalej w js,

Ale Yii standardowe jako id pola daje IdForm
Fieldname. Więc jeśli formularz ma nazwę Participant, to id pola Participant_pesel jest jak najbardziej możliwe
  • Odpowiedz
@marrbacca: tak, wiem o co Ci chodzi, dobrze się odwołuję.

@kowad: Yii z automatu generuje id wszystkim elementom.

W tym co podałeś, to akurat jest sposób na wyszukiwanie po value. A ja chcę value odczytać.
  • Odpowiedz
@Windmark: tak, to dlatego ;). Jeżeli pobierasz element jako html w wyniku operacji ajax to javascript nie wie do czego dołączyć zdarzenie onkeyup. W teorii użycie atrybutu onKeyUp powinno zadziałać, ale jeśli nie działa to są 2 sposoby na obejście tego:

1. Oprócz samego elementu wysyłasz razem z nim kod javascript, a w opcjach ajaxa ustawiasz wykonywanie javascriptu po załadowaniu

2. Wykorzystujesz delegację eventów jQuery (https://api.jquery.com/on/) i piszesz coś
  • Odpowiedz