0

ADDを#box押すと、非表示の が表示され、ADD ボタンが非表示になり、REMOVE ボタンが表示されます。

html:

<input type="button" id="add" value="ADD">
<input type="button" class="no-display" id="remove" value="REMOVE">

<div class="no-display" id="box">
    <input id="a" value="" type="text" />
    <input id="b" value="" type="text" />
    <input id="c" value="" type="text" />
</div>

jquery:

$('#add,#remove').click(function () {
    $('#add').toggle();
    $('#remove').toggle();
    $('#box').slideToggle("fast");
});

実際のデモを見る

#aここで、入力フィールドまたは#bまたはに値があるかどうかを確認したいと思い#cます。それらに値がある場合、ページロード時に表示したい、ボタンを#box非表示にして#addボタンを表示し#removeます。

これを行う最善の方法は何ですか?

ここでデモを見ることができます(未完成)

4

2 に答える 2

1

値を持つ入力のカウントを取得するために使用filter()します...カウントが0より大きい場合..少なくとも1つの入力が空ではないことを意味するので..追加を非表示にし、削除ボタンとコンテナを表示します

これを試して

$('#add,#remove').click(function () {
  $('#add').toggle();
  $('#remove').toggle();
  $('#box').slideToggle("fast");
});

var count = $('#a,#b,#c').filter(function () {
  return $(this).val().length > 0;
}).length;

if (count > 0) {
  $('#box').show();
  $('#add').hide();
  $('#remove').show();
}

コメントに従って更新されました

var count = $('#a,#b,#c').filter(function () {
  return this.value.length > 0; //faster 
}).length;    

ワーキングフィドル

于 2013-05-21T19:20:47.270 に答える