Очистка поля перед добавлением
Доброго времени!
есть скрипт $(document).ready(function(event){ $("#form1").submit(function(event){ event.preventDefault(); $("input[type=text]").each(function(){ $("#rez").append($(this).val()+" "); }); return false; }); }); который по нажатию на кнопку <input type="submit" value="Ready" name="write" class = "button" onclick="location.href="html.by;"> объединяет текст из полей input в одно поле. но проблема в том что при повторном нажатии на кнопку текст не обновляется а добавляется до существующего. подскажите пожалуйста как можно сделать удаление старого текста при повторном нажатии на кнопку? |
bee,
а что мешает обнулить данные в $("#rez").html("") перед циклом? |
Цитата:
Сработало! Большое спасибо! Но возник еще вопрос, почему после изменения текста в поле #rez скрип перестает работать? |
bee,
у вас может и нет никогда той страницы на которой вы когда-то нажали кнопку. это же моментальная перезагрузка onclick="location.href="html.by;" что это за элемент #rez ? |
echo '<textarea name="text" id="rez" rows="10" cols="150" class="enter" "></textarea>' ."\n".' '; |
bee,
для textarea используется val() а не append() $(document).ready(function(event){ $("#form1").submit(function(event){ event.preventDefault(); var str = "" $("input[type=text]").each(function(){ str += $(this).val()+" "; }); $("#rez").val(str); }); }); |
bee,
<head lang="en"> <meta charset="UTF-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <title></title> <script> $(document).ready(function(event){ $("#form1").submit(function(event){ event.preventDefault(); var str = "" $("input[type=text]").each(function(){ str += $(this).val()+" "; }); $("#rez").val(str); }); }); </script> </head> <body> <form action="json.txt" id="form1"> <input type="text" name="bublik" value="1"> <input type="text" name="bublik2" value="2"> <input type="text" name="bublik" value="3"> <input type="submit" value="Ready" name="write" class="button" > </form> <textarea name="text" id="rez" rows="10" cols="150" class="enter" ></textarea> </body> |
БОЛЬШОЕ СПАСИБО!!!:thanks: Все отлично работает!
|
50 копеек про использование значений текстовых полей в html-коде.
Напиши в любом поле выражение типа "a + b > c", про'append'и его и посмотри, что получилось. А получится шняга - символ > будет заменен на его эквивалент < Чтобы избежать такого эффекта, надо либо: 1) Использовать свойство объекта innerText 2) Для показа пользователю допускается делать так, как сделано у тебя, но для хранения правильного значения нужно иметь еще одно скрытое поле (либо type=hidden, либо display: none c type=text), в котором ты и можешь склеивать все значения. |
Часовой пояс GMT +3, время: 10:59. |