name
, иначе смысл какой делать type="radio"
? В событии формы - submit
можно уже что-то делать с выбранными значениями.<form>
<label>
<input type="radio" name="gender" value="male">
Мужской
</label>
<label>
<input type="radio" name="gender" value="female">
Женский
</label>
<button>Отправить</button>
</form>
const form = document.querySelector('form');
form.addEventListener('submit', event => {
event.preventDefault();
const data = new FormData(form);
alert(data.get('gender'));
});
function get(url, callback) {
const request = new XMLHttpRequest();
request.addEventListener('load', function (event) {
try {
const data = JSON.parse(request.response);
callback(data);
} catch (error) {
callback(request.response);
}
});
request.open('GET', url);
request.send();
}
get('https://jsonplaceholder.typicode.com/todos', function (data) {
console.log(data);
});
get('URL_1', function (data_1) {
get('URL_2', function (data_2) {
get('URL_3', function (data_3) {
// do something
});
});
});
function get(url) {
return new Promise(function (resolve, reject) {
const request = new XMLHttpRequest();
request.addEventListener('load', function (event) {
try {
const data = JSON.parse(request.response);
resolve(data);
} catch (error) {
resolve(request.response);
}
});
request.addEventListener('error', function (event) {
reject({
status: request.status,
text: request.statusText
});
});
request.open('GET', url);
request.send();
});
}
Promise.all([
get('URL_1'),
get('URL_2'),
get('URL_3')
]).then(function ([data_1, data_2, data_3]) {
// do something
});
callback
-функций в их promise
вариант. pre
вывести.fetch('https://jsonplaceholder.typicode.com/todos')
.then(response => response.json())
.then(data => {
const element = document.querySelector('pre');
element.textContent = JSON.stringify(data, null, '\t');
});
for (let i = 0; i < tasks.length; i++) {
...
li.innerHTML = tasks[i];
...
}
for (let task of tasks) {
...
li.innerHTML = task;
...
}
build
специально для продакшена сделано, а serve
для разработки?package.json
, чтобы --watch
работал, если очень надо. window.addEventListener('DOMContentLoaded', () => {
const links = document.querySelectorAll('a');
links.forEach(link => {
link.addEventListener('click', event => {
if (link.hash !== '') {
event.preventDefault();
const target = document.querySelector(link.hash);
if (target) {
target.scrollIntoView({
behavior: 'smooth'
});
}
}
});
});
});
html { scroll-behavior: smooth; }
достаточно будет. class EventEmitter {
constructor() {
this.handlers = new Map();
}
on(event, handler) {
const handlers = this.handlers.has(event) ? this.handlers.get(event) : new Set();
handlers.add(handler);
this.handlers.set(event, handlers);
}
emit(event, ...args) {
if (this.handlers.has(event)) {
const handlers = this.handlers.get(event);
for (let handler of handlers) {
handler(...args);
}
}
}
}
on
у CustomSelecton(event, callback) {
this.events.on(event, callback);
}
closeDropdown
дописываем this.events.emit('close');
а для customSelectInstanse
customSelectInstanse.on('close', () => {
console.log('Close');
});
:hover
больше не работает? Ну можно так:<a
:style="getMailStyle(user)"
v-on:mouseover="(event) => changeColor(evebt, user)"
v-on:mouseleave="() => originalColor(user)"
v-bind:href="`mailto:{{ user.commit.author.email }}`"
>{{user.commit.author.email}}</a>
methods: {
getMailStyle: function (user) {
return {
color: user.color
};
},
changeColor: function (e, user) {
e.preventDefault();
user.color = 'red';
},
originalColor: function (user) {
user.color = '#ccc';
}
}
fetch('https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits')
.then(response => response.json())
.then(json => {
this.users = json.map(user => ({
color: '#ccc',
...user
}));
}
assignValue
creditTermRange.value = creditTermRange.value;
меняем на creditTerm.value = creditTermRange.value;
totalAmountOfCredit.innerHtml= `${lounAmount} ₽`;
totalMonthlyPayment.innerHtml= `${monthlyPaymentArounded} ₽`;
totalRecommendedIncome.innerHtml= `${monthlyPaymentArounded + ((monthlyPaymentArounded / 100) * 35)} ₽`
.innerHTML
, но я советую использовать .textContent
denwer
на нечто более стабильное? var_dump
попробуйте header('Content-Type: text/plain; charset=utf-8');