Mam formularz, który składa się z pola tekstowego, textlaya, hasła i niektórych opadów Kendo i Combobox. Chcę wyczyścić wszystkie elementy sterujące na Clear Kliknij oprócz jednego tekstu i Textlai.

Zrobiłem podążanie za wyjaśnienie wszystkich kontroli.

$('#btnClear').on('click', function () {
  $(this).closest('form').find('input[type=text], textarea, input[type=password]').val('');
});

Nie wiem, jak nie wyczyścić niektórych kontroli.

3
Jaydevsinh Jadeja 14 sierpień 2014, 09:08

4 odpowiedzi

Najlepsza odpowiedź

Możesz osiągnąć funkcjonalność, wykonując metodę:

Zastosuj trochę klas do kontrolowania, których nie chcesz usunąć poniżej:

<div id="parent"> 
    <input type="text" id="textOne" /><br/>
    <input type="text" id="textTwo" class="ignoreT" /><br/>
    <textarea id="textThree" class="ignoreTA" ></textarea><br/>
    <input type="text" id="textFour" class="ignoreT" /><br/>
    <button id="clear">Clear</button>
</div>

Teraz pisz następujący kod, aby usunąć wszystkie elementy sterujące, z wyjątkiem elementów sterujących klasy ignoruj:

$('#clear').click(function(){
    $(this).closest('form').find('input:not(".ignoreT"), textarea:not("ignoreTA")').val('');
});

Lub możesz zastosować tę samą klasę (Załóżmy, że ignoruj) do wszystkich elementów sterujących i pisać następujący kod:

$('#clear').click(function(){
   $(this).closest('form').find('input, textarea').not('.ignore').val('');
});

Sprawdź, czy działa dla ciebie, czy nie.

4
Dhwani 14 sierpień 2014, 05:13

Spróbuj użyć : nie-selektor jak,

Niech someId jest tekstem tekstowym i {X1}} jest to, że texxarea, które nie powinny być puste

$('#btnClear').on('click', function () {
    $(this).closest('form').find('input:not(#someId),textarea:not(#otherId)').val('');
});

Również można użyć wspólnej klasy, takiej jak non-empty-elements za pomocą :not jak

$('#btnClear').on('click', function () {
    $(this).closest('form')
           .find('input[type=text], textarea, input[type=password]')
           .not('.non-empty-elements')// filter non-empty-elements
           .val('');
});

Należy pamiętać, że musisz dodać klasy non-empty-elements do tych elementów, które nie powinny być puste

3
Rohan Kumar 14 sierpień 2014, 05:15

Użyj nie ()

$(this).closest('form').find('input[type=text], textarea, input[type=password]').not('#myControlId1,#myControlId2').val('');

Gdzie #myControlId1 & amp; #myControlId1 to identyfikatory elementów sterujących, których nie chcesz usunąć

1
user2587132user2587132 14 sierpień 2014, 05:10