2010-09-29 2 views
0

Мне действительно нужно удалить некоторый блок с помощью js. Можно ли не скрыть какой-то блок, но удалить его вообще?Удаление блока Javascript

Потому что у меня есть поле, в котором пользователь не сможет увидеть, выбрал ли он «нет» в моем selectbox, но проверка JQuery в любом случае отправляет сообщение о том, что это поле пуст.

У меня есть это:

 $(function() { 
      $("#wichonepmtofollow").hide(); 

      $("#particularpmselect").change(function() { 
       // find the selected one 
       var selectedCountry = $(this).val(); 

       if (selectedCountry == "yes") { 
        $("#wichonepmtofollow").show(); 
       } 
       // otherwise hide it 
       else { 
        $("#wichonepmtofollow").hide(); 
       } 
      }); 
     }); 

И это:

<div id="wichonepmtofollow"> 
    <div class="section" id="inputdiv"> 
     <span class="fieldname">Which one?</span> 
     <input type="text" id="wichonepm" name="wichonepm" title="can't be empty" class="required" minlength="1"/> <!-- Nessesary to be filled--> 
      <script type="text/javascript"> 
       var wichonepm = new LiveValidation('wichonepm'); 
       wichonepm.add(Validate.Presence); 
      </script> 
    </div> 
    <div id="clear"></div> 
</div> 

Как вместо $ ("#") pleasespecify шкурку();. сделайте что-то вроде $ ("# pleasespecify"). удалить(); или что-то другое?

+1

Я думаю, вы не искали [ 'Jquery remove'] (https://encrypted.google.com/search?hl=en&q=jquery+remove) у вас? –

+2

Рекомендация: оставьте LiveValidation и используйте плагин проверки jQuery (http: //docs.jquery.com/Plugins/Validation), что упрощает определение правил, чтобы не проверять скрытые поля. – Bergius

ответ

0

[Обновлено на основе комментариев пользователей]

УДЕРЖИВАЙТЕ HTML временный в переменной -

if (selectedCountry == "yes") { 
    $("#wichonepmtofollow").html(temHtml); 
} 
else { 
    temHtml = $("#wichonepmtofollow").html(); 
    $("#wichonepmtofollow").html(''); 
} 

Глобально объявить temHtml

var temHtml; 
+0

То же самое. Он не работает, как это должно быть. Он удаляет мой блок. Но не возвращается! if (selectedCountry == "yes") {$ ("# wichonepmtofollow"). show(); } – FlashTrava

+0

@FlashTrava Отметьте последние обновления –

4
$("#pleasespecify").remove(); 

правильно (docs here).

Или, вы можете освободить родителя:

$("#wichonepmtofollow").empty(); 

EDIT (из-за замечаний OP):

Вы можете сохранить объект, который вы удалили, например:

var savedObj = $("#pleasespecify").remove(); 

И после этого вы можете добавить его позже:

$("#wichonepmtofollow").append(savedObj); 

Обратите внимание, что это также отвяжет все события, связанные с соответствующим элементом DOM. Чтобы сохранить все связанные события, вы можете использовать метод jQuery detatch.

+0

Нет, это не работает. Он удаляет мой блок. Но не возвращается! if (selectedCountry == "yes") { $ ("# wichonepmtofollow"). show(); } – FlashTrava

+0

@FlashTrava - можете ли вы исправить идентификаторы в своем javascript и html или разместить связанные фрагменты? – sje397

+1

Итак, вы хотите УБЕДИТЬ его, а затем вернуть его позже через show()? Может быть, если вы сохраните его как переменную и добавьте позже ... – Hannes

0

Для сохранения HTML во временном variiable, а затем удалить со страницы:

var tempHtml;//declare tempHtml outside other script code so it's available later 

затем, вместо $("#wichonepmtofollow").hide(); использования этого:

tempHtml = $("#wichonepmtofollow").html(); 
$("#wichonepmtofollow").html(''); //empty the container 

Чтобы восстановить HTML, позже:

$("#wichonepmtofollow").html(tempHtml); 
0

не нужно ничего разрушать, просто включите или отключите его, и он не будет проверен, если i т спрятано:

$(function() { 
     $("#wichonepmtofollow").hide(); 
     $('#wichonepm').attr('disabled',true); 

     $("#particularpmselect").change(function() { 
      // find the selected one 
      var selectedCountry = $(this).val(); 

      if (selectedCountry == "yes") { 
       $("#wichonepmtofollow").show(); 
       $('#wichonepm').attr('disabled',false); 
      } 
      // otherwise hide it 
      else { 
       $("#wichonepmtofollow").hide(); 
       $('#wichonepm').attr('disabled',true); 
      } 
     }); 
    }); 
Смежные вопросы