Может быть, посмотрите на что-то вроде этого. Он использует обещания Bluebird и библиотеку запросов-обещаний
const Promise = require('bluebird');
var rp = require('request-promise');
const urlList = ['http://www.google.com', 'http://example.com']
async function getList() {
await Promise.map(urlList, (url, index, length) => {
return rp(url)
.then((response) => {
console.log(`${'\n\n\n'}${url}:${'\n'}${response}`);
return;
}).catch(async (err) => {
console.log(err);
return;
})
}, {
concurrency: 10
}); //end Promise.map
}
getList();
Если Вы только хотите сделать что-то, когда вход поля на самом деле изменяется, необходимо использовать input
событие вместо keypress
событие. Если Вы хотите поддерживать IE < 9 в эти дни, Вам будет нужно его событие propietary propertychange
также.
В jQuery можно использовать его как это:
$('input').on('propertychange input', function (e) {
// will fire directly but only when input changes
});
Вы можете использовать подобные регулярные выражения
$('something').keypress(function(e) {
if(e.match(YourRegularExpressionHere)) {
//do something
}
});
Это будет делать что-то, только если оно соответствует регулярное выражение.
Посмотрите на регулярные выражения. http://www.regular-expressions.info/javascript.html
<script>
$("input").keypress(function (e) {
if (e.which !== 0 &&
!e.ctrlKey && !e.metaKey && !e.altKey) {
alert(String.fromCharCode(e.which));
}
});
</script>
Кажется, отлично работает с jQuery 1.4.2, FF, IE, Chrome.
Чтобы вникнуть в беспорядок, связанный с обработкой событий клавиатуры JS, см .: Безумие JavaScript: события клавиатуры
Обновлено для фильтрации комбинаций клавиш ctrl, meta и alt в соответствии с комментарием Дэниела. .