2012-03-02 1 views
0

私のチェックボックスのクリックで特定のID入力フィールドのみをクリアしようとしています。チェックボックスをオンにすると、2つのフィールドセットが切り替わります。すべてのフィールドセットのチェックボックスをクリックすると、特定のIDフィールドをクリアします。Jquery:チェックボックスの特定のフォームフィールドをクリックします。

私はこのスクリプトを手に入れましたが、私のフォームからすべてをクリアしています。それは私が探しているのではなく、特定のIDフィールドだけです。

function clear_form_elements(ele) { 

    $(ele).find(':input').each(function() { 
     switch(this.type) { 
      case 'text': 
      case 'textarea': 
       $(this).val(''); 
       break;    
       this.checked = false; 
     } 
    }); 

} 
+1

IDを知っている(またはチェックボックスの一部のプロパティからIDを抽象化することができます)なぜ$( '#myField')を使用しないのですか。ループの代わりに?そして、もしこのアプローチをとどめたいのであれば、$( 'input [type = text]、textarea'、elem)を使って入力とテキストエリアへの検索を制限してください。 –

+0

ニックの方法があります。動的IDのために、複数のフィールドを扱うために1行のコードを書くだけです – charlietfl

+0

ニックあなたは私に例を教えてもらえますか?あなたが言ったことを書く方法を理解することができません。私はjqueryとPHPに新しいです。実際に私は1つのことを試して、それは私のために働くが、あなたの方法も知りたい。もしそれを使用したいと思うより小さくて簡単です。 –

答えて

0

は、私は、フォームの構造がどのようなものかわからないんだけど、あなたはIDによって、テキスト、テキストエリア、チェックボックス、または選択値をクリアしたい場合は、想定すると

$(ele).find('#id').val(''); 

を使用することができます。

1. the variable 'ele' represents the form jquery object. 
2. '#id' is the id of the field you want to remove the value for, and 
3. that your javascript may be included on other pages that use the same '#id' 

「#id」がサイト全体で一意である場合、またはJavaScriptがページ固有の場合、Nickの方法は正常に動作します。

$('#id').val(''); 
+0

あなたのソリューションは完全には動作しませんが、私は試して少し修正しても問題ありません。 '$(ele).find('。clearform:input ')を書いたので、あなたのコードでは入力フィールドを考慮していませんでした。 .each(function() 'とそれは私のために働いています。しかし、私のフォーム構造は少し異なります。ここで、clearformはいくつかの入力要素のdivグループですので、それも理由かもしれません 実際に私も探していますもし彼がコードが小さくてもいいと思うなら、Nickに返信してください。 しかし、私は彼が言ったことに関するニックの返事を探しています。 –

関連する問題