Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] Jak przekazać zaznaczony radiobutton
Forum PHP.pl > Forum > Po stronie przeglądarki
marcinpruciak
Mam takie przyciski:

Kod
<input type="radio" name="rozmiar" id="rozmiar" value="oryginal" />
<input type="radio" name="rozmiar" id="rozmiar" value="150" />
<input type="radio" name="rozmiar" id="rozmiar" value="800x600" />


Chcę przekazać jeden zaznaczony do skryptu za pomocą jquery, robię to tak:

Kod
'scriptData':{'size': $('input:checked').val()}

Przekazuje się 'undefined', działało tylko wtedy gdy przy jednym miałem checked=checked, ale zawsze przesyłało jego niezależnie od zaznaczonego.
erix
Zawartość zapisuj do zmiennej przed $.(post|ajax|get) i jej używaj w żądaniu.

Pokaż cały skrypt.
marcinpruciak
U mnie jest tak:

Kod
$(document).ready(function() {
 $("#fileUpload").fileUpload({
     'uploader': '/NewKohana/media/js/uploadify/uploader.swf',
     'cancelImg': '/NewKohana/media/js/uploadify/cancel.png',
     'script': '/NewKohana/admin.php/media/add_image/',
     'folder': '/NewKohana/media/images',
     'multi': false,
     'displayData': 'speed'
 });

    $('#rozmiar').bind('change', function(){
     $('#fileUpload').fileUploadSettings('scriptData','&size='+$('#rozmiar').val());
 });
});



A w przykładach uzywania skryptu uploadify tak:

Kod
$("#fileUploadname3").fileUpload({
     'uploader': 'uploadify/uploader.swf',
     'cancelImg': 'uploadify/cancel.png',
     'script': 'uploadify/upload_name.php',
     'folder': 'files',
     'multi': true,
     'displayData': 'percentage',
     'scriptData': {'name':'JohnDoe', 'location':'Australia'}, 
     onComplete: function (evt, queueID, fileObj, response, data) {
         alert("Successfully uploaded: "+response);
     }
 });



$('#location').bind('change', function(){
     $('#fileUploadname3').fileUploadSettings('scriptData','&name='+$('#name3').val()+'&location='+$(this).val());
 });
erix
Ekhm, tak nawiasem chciałbym Ci przypomnieć o dwóch rzeczach:
  1. identyfikator MUSI być unikalny, poczytaj o klasach, bo u Ciebie są jak znalazł
  2. przy korzystaniu z bind() możesz również użyć $(this) jako odniesienia do konkretnej instancji wywołującego zdarzenie obiektu
Weirdo
INPUT type="radio" ma taki sam atrybut name, lecz różny atrybut id.
Zatem prostą pętlą JS sprawdzasz wartość:

Kod
var wartosc = -1; // domyślna wartość, pozwoli sprawdzić czy coś zostało wybrane
for (i=document.formularz.twoje_radio.length-1; i > -1; i--) {
    if (document.formularz.twoje_radio[i].checked) {
       wartosc = document.formularz.twoje_radio[i].value;
           i = -1; // przerwanie pętli, wskazana wartość odnaleziona
    }
}
if (wartosc == -1) alert("Proszę wskazać jedną z opcji twoje_radio");



Bez zaprzęgania selektorów jQuery, wydajnie, i w ogóle super hiper fajnie tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.