Jquery предопределенная текстовая область не будет очищена - PullRequest
0 голосов
/ 07 января 2020

Предварительное заполнение текстовой области данными, извлеченными из БД.

<textarea name="body" id="body" rows="5" cols="70"><? echo $body; ?></textarea>

У меня есть кнопка очистки, чтобы пользователю было проще стирать большой кусок текста без необходимости выделите и удалите.

Кнопка использует вызов функции onclick="clear();".

Вот функция ...

function clear() {
    $('#body').val('');
}

Проблема в том, что она не удаляет предопределенные текст. Он будет очищать только текст, набранный в дополнение к предопределенному тексту. Или, если я вручную удаляю предопределенный текст, он работает нормально.

Мне нужно поле, чтобы показать значение из БД. Есть ли способ сделать это sh, не отражая значение DB в <div> над полем и воздерживаясь от предварительного определения ext в текстовой области?

Спасибо.

1 Ответ

1 голос
/ 07 января 2020

Переименуйте вашу функцию в нечто отличное от clear(), а все остальное хорошо. См. Почему я не могу вызвать функцию с именем clear из атрибута onclick?

В качестве альтернативы используйте .on('click', ...), как я продемонстрировал ниже, прикрепив прослушиватель событий к кнопке с помощью класса js-clear.

function myClear() {
  $('#body').val('');
}

$('.js-clear').on('click', function() {
  $('#body').val('');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<textarea name="body" id="body" rows="5" cols="70">test content</textarea><br>

<button onclick="myClear()">myClear</button>
<button class="js-clear">.on('click')</button>
...