2013-09-16 2 views
-1

У меня есть форма, где я хочу, чтобы дополнительное поле было очищено, если пользователь изменил свой выбор. Я получил форму для добавления или удаления необязательной опции, но если пользователь вводит текст в необязательном поле, а затем изменяет свой ум и нажимает кнопку отмены, то я хочу, чтобы значение в необязательном поле было очищено , Мне нужно это, потому что, когда форма отправлена, важно, чтобы необязательное поле было пустым, если новая дата из необязательного поля не будет отправлена ​​в базу данных.Поле ввода прозрачной формы при переключении

<form> 
     <a href="#" class="show_hide">+ Add New</a> 
     <div class="slidingDiv"> 
     Artists name: <input type="text" name="name"> 
     Artists info: <textarea name="info" cols="65" rows="15"></textarea> 
     <a href="#" class="show_hide">Cancel</a> 
     </div> 
    </form> 

-

$(document).ready(function(){ 

    $(".slidingDiv").hide(); 
    $(".show_hide").show(); 

$('.show_hide').click(function(){ 
$(".slidingDiv").slideToggle(); 
}); 

});

+0

Я не могу понять, в чем проблема и связанный с ней вопрос. Воспроизведение кода дает действительно странные результаты, что делает ваш Q еще менее понятным. Вы используете HIDE для родительского элемента, а SHOW - для одного из детей ... это не так странно? Надеюсь, я ответил вам Q в этом комментарии. BTW –

+0

Прошу прощения, я забыл добавить ссылку, которая добавляет этот вариант. У меня также есть два поля, которые, как мне кажется, усложняют его и могут быть причиной простого .val (''); не делает этого? –

ответ

0
$('.show_hide').click(function(){ 
    $(".slidingDiv").slideToggle(); 
    $(".slidingDiv input").val(""); 
    $(".slidingDiv textarea").val(""); 
    $(".slidingDiv textarea").html("") 
}); 

Это изменяет значение поля на "" или пустое.

Примечание: Textarea's там дважды, потому что я считаю, что некоторые браузеры не записывают контент textarea как value, а как innerHTML.

Редактировать: Если вы хотите удалить определенное поле, присвойте id этому полю в своем HTML-документе, а затем просто снимите его с помощью jQuery.

Например:

<input type="text" name="customerName" id="myInputField" /> 
<textarea name="customerResponse" id="myTextarea" /></textarea> 

... и тогда ваш Jquery:

$("#myInputField").val(""); 
$("#myTextarea").val(""); 

Так что, если вы дали .slidingDiv inputid "myInputField", и вы просто хотели, чтобы очистить вход и НЕ textarea, то ваш jQuery будет выглядеть так:

$('.show_hide').click(function(){ 
    $(".slidingDiv").slideToggle(); 
    $("#myInputField").val(""); 
}); 

Это действительно, действительно, действительно базовый jQuery, поэтому убедитесь, что вы просматриваете некоторые уроки, прежде чем обращаться в StackOverflow за помощью!

+0

Спасибо за ответ. Это не работает для меня. Если я снова нажму кнопку «Добавить», старый текст по-прежнему будет отображаться в текстовом поле. Это зависит от браузера? –

+0

Ох. Это потому, что я идиот. '.val (" ")' должен быть присоединен к элементу, в котором пользователь вводит свой вход. Теперь редактирование вышеизложенного ... – RobertAKARobin

+0

А! Большое спасибо! : D Теперь, один вопрос, в этом примере у меня нет никакого другого текстового поля вне секции переключения, но если я это сделаю, текст в поле под секцией переключения также будет очищен. Есть ли способ определить, какие поля должны быть выполнены, чтобы другие не были очищены, а только те, которые были опциональны? Благодаря! –

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