Вход

Просмотр полной версии : Изменение состояния кнопки на чистом JS


12345678
24.02.2022, 14:19
Имеется вот такой код, при нажатии на кнопку изменяет надпись, добавляет div и стиль. Как всё это будет выглядеть на чистом JS?

jQuery('#commentform').submit(function() {
$(this).find("#submit").val("Отправка комментария...").attr("disabled", "disabled").before('<div class="comment-spinner"><div>').css({
"padding-left": "20px",
"cursor": "wait"
});

ksa
24.02.2022, 17:14
Как вариант...
<form id='commentform'>
<button id='submit'>Тест</button>
</form>
<script>
document.querySelector('#commentform').addEventLis tener('submit', _ => {
_.preventDefault()
const o = document.querySelector("#submit")
o.value = 'Отправка комментария...'
o.disabled = true
const html = '<div class="comment-spinner" style="padding-left: 20px; cursor: wait;">comment-spinner<div>'
o.insertAdjacentHTML('beforebegin', html)
})
</script>

12345678
24.02.2022, 17:42
ksa
Спасибо. Только вот этот кодstyle="padding-left: 20px; cursor: wait;" должен добавляться кнопке input, к div стилю comment-spinner он никак не относится.
Как добавить сей код в необходимое место?

рони
24.02.2022, 17:52
Только вот этот код
style="padding-left: 20px; cursor: wait;"
должен добавляться кнопке input,
https://learn.javascript.ru/styles-and-classes

12345678
24.02.2022, 18:13
рони
Спасибо. Вот так добавил.
o.setAttribute("style", "padding-left:20px;cursor:wait;");

ksa
24.02.2022, 22:01
Вот так добавил.
o.setAttribute("style", "padding-left:20px;cursor:wait;");

Есть специальные свойства...
o.style.paddingLeft = '20px'
o.style.cursor = 'wait'

12345678
25.02.2022, 03:52
ksa
Спасибо за уточнение. Я пробовал их вписывать, но чего то скрипт вовсе переставал работать :blink: В итоге остановился на том варианте, который привёл.

ksa
25.02.2022, 11:06
Я пробовал их вписывать, но чего то скрипт вовсе переставал работать
Для этого и делаются тестовые примеры, которые можно показать тут.
Тогда будет понятно что у тебя не получается... ;)

<form id='commentform'>
<button id='submit'>Тест</button>
</form>
<script>
document.querySelector('#commentform').addEventLis tener('submit', _ => {
_.preventDefault()
const o = document.querySelector("#submit")
o.value = 'Отправка комментария...'
o.disabled = true
o.style.paddingLeft = '20px'
o.style.cursor = 'wait'
const html = '<div class="comment-spinner">comment-spinner<div>'
o.insertAdjacentHTML('beforebegin', html)
})
</script>