2016-05-19 2 views
3

Я хочу, чтобы очистить значение входного сигнала с классом «inputF», порожденного Append в JQuery,Очистить значение входного сигнала на клик JQuery

<script type="text/javascript" src="jquery.min.js"></script> 
<script> 
$(document).ready(function() { 
var wrapper = $(".input_fields_wrap"); //Fields wrapper 
var add_button = $(".add_field_button"); //Add button ID 

    $(add_button).click(function (e) { //on add input button click 
     e.preventDefault(); 

     $(wrapper).append('<div><input type="text" class="inputF" name="mytext[]"/>\n\ 
       <button name="remove" class="remove_field">x</button>\n\ 
       <button name="clear" class="clear_field">clear</button>\n\ 
       <input type="checkbox" class="check" group="check">\n\ 
       </div>'), 
    }); 

}); 
</script> 
<div class="input_fields_wrap"> 
<button class="add_field_button">+</button> 
<button class="show_field_button">show all</button> 

Это не работает для меня,

$(wrapper).on("click", ".clear_field", function() { 
     $(this).find('.inputF').val(''); 
    }); 

Каков правильный способ его написать?

+0

Vesion из JQuery является v1.12.3 –

ответ

2

В то время как ваш HTML структура выглядит

<div> 
    <input type="text" class="inputF" name="mytext[]"/> 
    <button name="remove" class="remove_field">x</button> 
    <button name="clear" class="clear_field">clear</button> 
    <input type="checkbox" class="check" group="check"> 
</div> 

вам нужно использовать .parent();

$(wrapper).on("click", ".clear_field", function() { 
    $(this).parent('div').find('.inputF').val(''); 
}); 

или .closest();

$(wrapper).on("click", ".clear_field", function() { 
    $(this).closest('div').find('.inputF').val(''); 
}); 
+0

Большое спасибо. –

+0

@Keyur, пожалуйста. Удачи :) –

1

Вы неверный селектор предназначаться родственным элемент:

$(wrapper).delegate("click", ".clear_field", function() { 
    $(this).closest('div').find('.inputF').val(''); 
}); 
+0

Что вы изменили? Разве это не точная копия кода OP – Tushar

+0

Извините за письмо делегата, он тоже не работает. –

+0

@Keyur: какая версия js вы используете и где вы привязываете событие. –

1

Просто замените:

$(this).find('.inputF').val(''); 

С:

$(wrapper).find('.inputF').val(''); 
+0

Большое спасибо. Но он удаляет все значения текстового поля. Которого я не хочу. –

Смежные вопросы