2012-01-19 30 views
2

一連のフォームにフォームを追加、削除(つまりコピーまたは削除)するための '+'と ' - 'ボタンがあるという簡単な設定があります。最後のフォームが削除されないようにするにはどうすればよいですか?最後のフォームが削除されないようにするにはどうすればよいですか?

- + 
<form> 
stuff 
</form> 

たとえば、誰かが「+」ボタンを3回押すと、効果的に4つのフォームが表示されます。最初のものを削除することを止めるにはどうすればよいですか?つまり、残りの1つが残るようにするにはどうすればよいですか?

は、ここで 'マイナス' 関数のためのjQueryのです:事前に

if ($("#creative").length > 0) { 
//do something 
} 

ありがとう:

$(function() { 
$('.removeCreative').click(function() { 
    $('#creative').find('form:last').remove(); 
}); 
}); 

のようなものとして、単にそれをです。

答えて

3

$(function() { 

    $('.removeCreative').click(function() { 
     if($("#creative").children("form").length > 1){ 
      $('#creative').find('form:last').remove(); 
     } 
    }); 

}); 
$("#creative").lengthすることはあなたが #creative要素の下に含まれているフォームの数を見つけたい常に1であるセレクタ #creative、で見つかった要素の数を返します。

children()メソッドをJQueryで使用すると、特定の要素内のすべての子要素を取得できます。この要素には、lengthと数えます。複数ある場合は削除のみが許可されます。最初のchildren()パラメータとして「フォーム」セレクタを渡して、#creative divに異なるタイプの要素がある場合に正しい長さの値を取得できるようにします。form

+0

驚くばかりこれは治療を働いた - ありがとう! – zik

1

あなたはほとんどそれを持っていたこの

$(function() { 
    $('.removeCreative').click(function() { 
    var $forms = $('#creative').find('form'); 
    if($forms.length > 1){ 
     $forms.last().remove(); 
    } 
    }); 
}); 
+0

残念ながら、すべての回答を受け入れることはできません。 – zik

+0

@Kiz - それはどういう意味ですか? – ShankarSangoli

+0

あなたの答えは正しかったが、私は3つすべての回答を受け入れることができない! :) – zik

1

を試してみてください。 ...あなたは、ほとんど存在し

if ($("#creative").find("form").length > 1) { 
    // Remove the last form... 
} 
+0

恐ろしい - 正に記載されています。ありがとう、私は私が近いと思った、ちょうどそれを把握することができませんでした:S – zik

関連する問題