Очистка поля перед добавлением
Доброго времени!
есть скрипт
$(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, время: 14:47. |