jquery
  • forms
  • css-selectors
  • element
  • hidden
  • 2009-06-15 10 views 12 likes 
    12

    (answers aggregated into another question)selektor jQuery nie można odczytać z pola ukrytego

    Poniższy kod jquery 1.3.2 działa:

    <input type="select" value="236434" id="ixd" name='ixd' /> 
    
    <script> 
    console.log($('#ixd')); 
    console.log($("input[name='ixd']")); 
    </script> 
    

    konsoli pokazuje:

    [Wejście # IXd 236434]

    [wejście # ixd 236434]

    Jednak ustawienie wejścia "ukryte" uniemożliwia działanie selektorów. Jakieś wskazówki?

    <input type="hidden" value="236434" id="ixd" name='ixd' /> 
    
    <script> 
    console.log($('#ixd')); 
    console.log($("input[name='ixd']")); 
    </script> 
    

    konsoli pokazuje:

    []

    []

    Odpowiedz

    27

    Nie wiem, dlaczego to byłoby niepowodzeniem. Robię to samo w pracy regularnie i działa niezależnie od tego, czy pole jest ukryte, czy nie.

    Może spróbuj tego:

    <input type="hidden" value="236434" id="ixd" name='ixd' /> 
    
    <script> 
        console.log($("#xid").val()) 
    </script> 
    

    który będzie Ci wartość pola ukrytego. Aby uzyskać wartość z pola formularza, należy użyć metody .val().

    +2

    +1: Powinien być używany .val(), aby pobrać wartość pola. –

    +1

    Próbowałem to, próbowałem zwrócić uwagę, że selektory nie działały, zamiast używać wyjścia :) – Andy

    +0

    Również ten kod nie działa! – Andy

    2

    To może być większy problem z konsolą. Przeprowadziłem test i wydaje mi się, że nadal pobieram instancję elementu. Nie mogę dokładnie powiedzieć, co próbujesz tutaj zrobić.

    Jeśli jesteś po prostu staramy się potwierdzić pogoda obiektu stwierdzono sprawdzić właściwość length

    console.log($('#xid').length); 
    

    Jeśli próbujesz uzyskać wartość pola następnie użyć metody val

    console.log($('#xid').val()); 
    

    Wreszcie możliwe, że w twoim rozwiązaniu DOM nie został jeszcze w pełni załadowany. Upewnij się, że zawijacie logikę wewnątrz dokumentu.

    $(document).ready(function() { 
        console.log($('#xid').val()); 
    }); 
    
    +0

    Wielkie dzięki, to jest rozwiązanie - ale dlaczego to nie działa w tym przypadku, gdy znaczniki

    1

    Jeśli robisz to w ASP.Net, sprawdź identyfikator kontrolki w środowisku wykonawczym za pomocą opcji Wyświetl źródło w przeglądarce. Może się okazać, że Twój identyfikator kontrolny nie jest tym, czego oczekujesz, jeśli na przykład twoja kontrola jest zadeklarowana na stronie treści. W tym przypadku zostanie mu przypisany identyfikator, który jest prowadzony przez jego stronę wzorcową. Zamiast twardego kodowania identyfikatora w twoim jQuery możesz odwoływać się do jego właściwości ClientID, używając składni inline ASP.Net, która będzie również chronić Cię przed wszelkimi zmianami w hierarchii kontrolnej strony głównej lub strony treści.

    Więc ...

    $('#<%= myHiddenControl.ClientID %>').val(); 
    

    ... byłby lepszym wyborem niż ...

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

    ... chociaż obie prace.

    0

    Jeśli żadna z powyższych prac spróbować

    $('#xid').attr('value'); 
    
    Powiązane problemy