2014-10-24 3 views
0

Я использую приведенный ниже код, чтобы очистить все поля ввода в моей форме, кроме 2 выбрать меню и группу переключателей.Очистить поля ввода формы, кроме радио/выбрать значения меню?

Но он очищает все значения? Как игнорировать '#selct1', '#select2, '#radios2' и очистить все другие значения ввода в моей форме?

$('.myinputs') 
    .not('#selct1', '#select2, '#radios2') 
    .val('') 
    .removeAttr('checked') 
    .removeAttr('selected'); 

ответ

3

val('') очистит содержимое ваших элементов. Вам не нужно .removeAttr('selected') в качестве приветствия.

// clear input except radio buttons and <select> 
    $(".myinputs").not('[type=radio],[type=checkbox],select').val(''); 

    // if yo need to reset select menu back to its default value 
    $('.selectClass').val($('.selectClass').prop('defaultSelected')); 

Проверьте также this

+0

любой способ сделать его динамическим для всех элементов, а не использовать селектор классов; –

0
$(".myinputs").not('[type=radio],[type=checkbox],select').val(''); 
0

Это должно работать для вас, его немного больше кода, чем вы использовали, но это работает.

$("#btn").on("click", function(){ 
    $(".myinputs").each(function(){ 
     if($(this).attr("id") == ("radio1")){ 
      return true; 
     }else if($(this).attr("id") == ("select1")){ 
      return true; 
     }else if ($(this).attr("id") == ("select2")){ 
      return true; 
     }else{ 
      $(this).val(""); 
      $(this).val([]); 
     } 
    }); 
}); 

Вот jsfiddle его в действии

0

Добавить класс («DontClear» в этом примере) для управления вы не хотите, чтобы проверить (радиоприемник и выбрать элементы управления). Затем попробуйте выполнить следующие функции:

$(".myInputs").each(function(){ 
    if ($(this).hasClass("DontClear")) 
     continue; 
    $(this).val(""); 
});