Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2018, 14:58
Новичок на форуме
Отправить личное сообщение для pozitiv4ek Посмотреть профиль Найти все сообщения от pozitiv4ek
 
Регистрация: 03.02.2012
Сообщений: 9

Помогите вынести js в отдельный скрипт
Здравствуйте. Помогите, пожалуйста, вынести js код события onkeyup в отдельную фнкцию.
<input onkeyup="setCapitalLetter(this.value, this)" type="text">

Я с js на вы, но любому новичку, думаю, это по силам.
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2018, 15:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,724

Сообщение от pozitiv4ek
вынести js код события onkeyup
Что сделать?

Объявить обработчик вне атрибута?
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2018, 15:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от pozitiv4ek
Помогите, пожалуйста, вынести js код события onkeyup в отдельную фнкцию.
Оно?

<input type="text" />
<script type='text/javascript'>
document.querySelector('input').addEventListener('keyup',function(){
	setCapitalLetter(this.value, this)
});
function setCapitalLetter(Val,Obj){
	alert(Val);
};
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2018, 15:11
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

наверное, так...
<input type="text" />
<script type='text/javascript'>
document.querySelector('input').addEventListener('keyup',function(){
	setCapitalLetter(this.value, this)
});
function setCapitalLetter(Val,Obj){
	Obj.value  = Val.toUpperCase() ;
};
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2018, 18:30
Новичок на форуме
Отправить личное сообщение для pozitiv4ek Посмотреть профиль Найти все сообщения от pozitiv4ek
 
Регистрация: 03.02.2012
Сообщений: 9

ksa, не то, выскакивает окошко.

Dilettante_Pro, почти так. Только теперь все буквы становятся заглавными. А нужно только первую сделать заглавной.

Забыл указать обязательное условие. На сервер значение поля input должно отправляться именно с заглавной буквой. С помощью события onkeyup это работает. Но мне нужно вынести весь js код в отдельный файл.
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2018, 18:47
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

pozitiv4ek,
Сообщение от pozitiv4ek
нужно только первую сделать заглавной
<input type="text" />
<script type='text/javascript'>
document.querySelector('input').addEventListener('keyup',function(){
	setCapitalLetter(this.value, this)
});
function setCapitalLetter(Val,Obj){
	Obj.value  =  Val[0].toUpperCase() + Val.substr(1).toLowerCase() ;
};
</script>

Сообщение от pozitiv4ek
мне нужно вынести весь js код в отдельный файл
ну и выносите - в чем проблема?

Если будете подключать внешний скрипт в разделе head страницы, то js-код в файле нужно обернуть в
function ready() {
       // здесь ваш код
  }

  document.addEventListener("DOMContentLoaded", ready);

Последний раз редактировалось Dilettante_Pro, 12.01.2018 в 18:54.
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2018, 19:02
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type="text">
	<script>
		document.querySelector('input').onkeyup=function(){
			this.value=this.value.replace(/^(.)/, el => el.toUpperCase()); 
		};
	</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2018, 19:06
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

если для всех интутов
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type="text">
	<input type="text">
	<script>
		[].forEach.call(document.querySelectorAll('input'), el=>el.onkeyup=function(){
			this.value=this.value.replace(/^(.)/gm, el => el.toUpperCase()); 
		});
	</script>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 12.01.2018, 20:11
Новичок на форуме
Отправить личное сообщение для pozitiv4ek Посмотреть профиль Найти все сообщения от pozitiv4ek
 
Регистрация: 03.02.2012
Сообщений: 9

Dilettante_Pro, j0hnik, спасибо! Оба варианта рабочие.
Вынес код в отдельный файл.
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2018, 10:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от pozitiv4ek
выскакивает окошко
Разумеется! Я же его вызываю...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Товарищи, помогите, скрипт js не запускается Krusher Общие вопросы Javascript 19 31.08.2016 05:51
Помогите полностью расшифровать скрипт JS DFanJ Events/DOM/Window 0 31.07.2016 00:04
помогите новичку встроить JS во фреймворк Яна_24 Общие вопросы Javascript 1 03.04.2016 17:33
Помогите вставить скрипт в скрипт smc jQuery 0 13.12.2014 22:24
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31