2012-05-25 16 views
49

Próbuję utworzyć modalne okno dialogowe ze zdjęciami, w których można wybrać wiele obrazów. Muszę pobrać wartości z danych wejściowych, a następnie je opróżnić, ale nie mogę opróżnić danych wejściowych. Próbowałem .val('') i .val(null), ale żadna nie zadziałała dla mnie.Jak opróżnić wartość wejściową za pomocą jQuery?

Oto pełny kod:

$("#hdselect").click(function(){ 
     $(".modal").html(""); 

     $.post('mediaservice.php',{hd:'ok',images:$("#hdimages").val()},function(data){ 
      $(".modal").append(data); 
     }); 
     $(".modal").dialog({ 
      'modal':true, 
      'title':"Click the image to select", 
      'width':960, 
      'height':600, 
      'resizable':false, 
      'show': {effect: 'drop', direction: "up"}, 
      'buttons': {"Ok": function() { 
        var hd=Array(); 
        var hdval=$("#hdimages").val(); 
        $("#hdimages").attr('value',' '); 
        $("input[name='hd[]']:checked").each(function(){ 
         hd.push($(this).val()); 
        }); 
        if(hdval!=''){ 
         hdval=hdval+","+hd; 
        }else{ 
         hdval=hd; 
        }       
        $("#hdimages").val(hdval); 
        var images=$("#hdimages").val(); 
        $.post('mediaservice.php',{getHd:images},function(data){ 
         $("#imgthumbBase").append(data); 
        }); 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 

Chodzi o to, że użytkownik kliknie przycisk i otwiera się okno modalne z wieloma obrazami i wyboru. W tym momencie muszę uzyskać wartości z danych wejściowych, a następnie wyczyścić je.

+4

'' '$ ('input') val ('')' '' zrobi praca. ** Przykład na żywo ** - http://jsfiddle.net/fQMmp/1/ Czy masz na myśli coś związanego z obrazami? –

+0

Naprawdę nie rozumiem, co próbujesz zrobić, ale $ ('# inputid'). Val (''); zdecydowanie usunie wartość wejściową. Patrząc na twój kod, nie widzę nigdzie .val ('')? –

+0

Podaj więcej kontekstu, nie jest możliwe określenie, dlaczego Twój kod nie działa inaczej. – Christoph

Odpowiedz

52

można spróbować:

$('input.class').removeAttr('value'); 
$('#inputID').removeAttr('value'); 
+1

@VitKos Domyślam się, że to kolejny problem w twoim kodzie, a ty przypadkiem sprawiłeś, że zadziałało ... – Christoph

+1

@ Christophof może. więc poprosiłem społeczność, żeby mi to pokazała. –

+1

To nie działało, ale .val ("") pracował dla mnie. Obejmuje je oba na wypadek, gdyby drugi nie zadziałał. –

79

Aby uczynić wartości opróżnić można wykonać następujące czynności:

$("#element").val(''); 

Aby uzyskać wybraną wartość można zrobić:

var value = $("#element").val(); 

Gdzie #element jest id elementu, który chcesz wybrać.

+0

To czyni wartość "", a nie NULL. – user1032531

+2

@ user1032531 - pytanie brzmi: jak opróżnić wartość wejściową za pomocą jQuery, a nie jak przypisać wartość "null" do elementu. Proszę dokładnie przeczytać to pytanie, zanim zagłosuję na moją odpowiedź. –

+1

Być może user1032531 był w trakcie pierwszej frazy * Aby wprowadzić wartości zerowe, możesz ...* może jest bardziej czytelny w pisaniu * Aby opróżnić wartości, które możesz zrobić ... * – Adam

13

zwykły sposób na pustym polu tekstowym za pomocą jQuery jest:

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

Jeżeli powyższy kod nie działa, niż należy sprawdzić, czy jesteś w stanie dostać element wejściowy .

console.log($('#txtInput')); // should return element in the console. 

Jeśli nadal napotykasz ten sam problem, proszę napisać swój kod.

5

Innym sposobem jest:

$('#element').attr('value', ''); 
+0

nie resetuje wartości, jeśli tekst jest zapisany w polu wejściowym. Ponieważ wartość nie będzie w wartości attr. – Mahi

15

Lepszym sposobem jest:.

$("#element").val(null); 
+0

Począwszy od wersji HTML5 i 2017 - Chrome przynajmniej nie dodaje wartości attr. Jest to więc jedyny taki, który działa w Chrome. Nie testowałem innych przeglądarek. – Routhinator

1
$('.reset').on('click',function(){ 
      $('#upload input, #upload select').each(
       function(index){ 
        var input = $(this); 
        if(input.attr('type')=='text'){ 
         document.getElementById(input.attr('id')).value = null; 
        }else if(input.attr('type')=='checkbox'){ 
         document.getElementById(input.attr('id')).checked = false; 
        }else if(input.attr('type')=='radio'){ 
         document.getElementById(input.attr('id')).checked = false; 
        }else{ 
         document.getElementById(input.attr('id')).value = ''; 
         //alert('Type: ' + input.attr('type') + ' -Name: ' + input.attr('name') + ' -Value: ' + input.val()); 
        } 
       } 
      ); 
     }); 
+4

Było miło, jeśli możesz wyjaśnić ... dla ogólnej korzyści ... – Samer

+0

za pomocą powyższego fragmentu, możesz zresetować cały formularz, który może zawierać pola wejściowe, pola wyboru, przyciski radiowe i pola wyboru. Możemy ustawić wszystkie te typy wartości domyślnych .. – raji

Powiązane problemy