2012-05-25 6 views
49

私は複数の画像を選択できる画像でモーダルダイアログを作成しようとしています。私は入力から値を取得し、それを空にする必要がありますが、入力を空にすることはできません。私は.val('').val(null)を試しましたが、どちらもうまくいきませんでした。ここでjQueryで入力値を空にするにはどうすればよいですか?

は完全なコードです:

$("#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"); 
       } 
      } 
     }); 
    }); 

アイデアは、ユーザーがボタンをクリックし、モーダルダイアログが複数の画像やチェックボックスを開くということです。この時点で、私は入力から値を取得し、それをクリアする必要があります。

+4

'' '$( '入力')ヴァル( '')' ''行います。ジョブ。 **ライブの例** - http://jsfiddle.net/fQMmp/1/ 画像に関連するものを意味しましたか? –

+0

あなたは何をしようとしているのか分かりませんが、$( '#inputid')。val( '');入力値を確実にクリアします。あなたのコードを見ると、実際にどこでも.val( '')を見ることができません。 –

+0

文脈をもう少し提供してください。そうでなければコードが機能しない理由を説明することはできません。 – Christoph

答えて

52

あなたは試みることができる:

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

@VitKos私はそれがあなたのコードの別の問題だと思っていて、あなたは誤って動作させてしまいました... – Christoph

+1

@Christoph多分。私はそれを私に見せるためにコミュニティに頼んだ。 –

+1

これは動作しませんでしたが、.val( "")が私のために働いていました。もう片方がうまくいかない場合に備えて両方を含める。 –

79

作るに値を使用すると、次の操作を行うことができます空に:

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

はあなたが行うことができ、選択した値を取得するには:#elementは、選択したい要素のidです

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

+0

これは値を ""にし、NULLにしません。 – user1032531

+2

@ user1032531 - 問題は、要素に 'null'値を割り当てる方法ではなく、入力値をjQueryで空にする方法です。私の答えを落とす前に質問を正しく読んでください。 –

+1

たぶんuser1032531が最初のフレーズでコミットしていました*値をnullにするには...*多分それを書くのはもっと明白です*空の値にすることができます... * – Adam

13

をjqueryのを使用して、空のテキストボックスへの通常の方法は次のとおりです。

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

上記のコードは、あなたが にできることを確認してくださいよりも動作していない場合は、入力要素を取得。

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

まだ同じ問題が発生している場合は、コードを投稿してください。

5

もう一つの方法は次のとおりです。

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

テキストが入力フィールドに書き込まれている場合、値はリセットされません。この値は値attrの内側にはないためです。 – Mahi

15

良い方法は次のとおりです。

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

HTML5と2017以降 - Chromeは少なくとも値attrを追加しなくなりました。 Chromeで動作するのはこれだけです。他のブラウザをテストしていない。 – 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

上記のスニペットを使用すると、入力フィールド、チェックボックス、ラジオボタン、および選択フィールドを含むフォーム全体をリセットすることができます。一般的なメリットとして... – Samer

+0

を説明できればうれしいです。これらのすべてのデフォルト値を設定できます。 – raji

関連する問題