Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Изменение состояния кнопки на чистом JS (https://javascript.ru/forum/css-html/83720-izmenenie-sostoyaniya-knopki-na-chistom-js.html)

12345678 24.02.2022 14:19

Изменение состояния кнопки на чистом JS
 
Имеется вот такой код, при нажатии на кнопку изменяет надпись, добавляет 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').addEventListener('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

Цитата:

Сообщение от 12345678
Только вот этот код
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

Цитата:

Сообщение от 12345678
Вот так добавил.
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

Цитата:

Сообщение от 12345678
Я пробовал их вписывать, но чего то скрипт вовсе переставал работать

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

<form id='commentform'>
	<button id='submit'>Тест</button>
</form>
<script>
document.querySelector('#commentform').addEventListener('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>


Часовой пояс GMT +3, время: 00:02.