Javascript.RU

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

Задать количество символов перед номером страницы!
<input type='text' id='zap' maxlength='1'>
<input type='number' id='kol'>
<input type='number' id='page'>
<div id='output'></div>

В первом поле пользователь вводит символ-заполнитель, например: *
Во втором количество таких символов, например: 8
В третьем вводит номер страницы, например: 7

В итоге в div будет:
********7

Вот заготовка скрипта, дальше - без понятия... (
var zap = document.getElementById('zap').value;
var kol = document.getElementById('kol').value;
var page = document.getElementById('page').value;
var output = document.getElementById('output');
???
output.innerHTML = ??? + 'page'

Надеюсь на вашу помощь, товарищи!
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2015, 22:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<style>
label{
  display:block;
  width:200px;
  text-align:right;
  margin:3px;
}
</style>
<form id=inp style="width:400px">
<label>Заполнитель: <input type='text' id='zap' maxlength='1'/ value='*'></label>
<label>Число символов зап-ия: <input type='number' min=0 id='kol' value='0'/></label>
<label>Номер Страницы: <input type='number' min=1 id='page' value='1'/></label><br>
 <div id='output'></div>
</form>
<script type="text/javascript">
document.querySelector('#inp').oninput=function(){
var zap = document.getElementById('zap').value;
var kol = +document.getElementById('kol').value;
var page = +document.getElementById('page').value;
var output = document.getElementById('output');
var dop='';
for(var i=0;i<kol;i++)dop+=zap.replace(/\s/,'&nbsp;');
output.innerHTML = dop + page;
}
</script>

Последний раз редактировалось Deff, 30.12.2015 в 00:54.
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2015, 23:02
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

А как организовать динамическое изменение результата и без обновления странички?
kol.onchange ?

Deff, а насколько быстр ваш способ?
Вот тут я нашел скрипт для создание префикса перед числом:
http://www.coding4.net/post/prefix-i...avascript.aspx

function PrefInt(number, len) {
   return (Array(len).join('0') + number).slice(-length);
}
document.writeln(PrefInt(79, 4));


Можно ли сюда привязать поле kol. Типа .join('i')
var i = document.getElementById('kol').value;

Если Вас не затруднит, объясните, что лучше по быстродействию. Спасибо

Последний раз редактировалось Teamur, 29.12.2015 в 23:16.
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2015, 23:18
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Просто интересно какие еще могут быть варианты )
Ответить с цитированием
  #5 (permalink)  
Старый 29.12.2015, 23:30
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
Просто интересно какие еще могут быть варианты )
alert("0".repeat(15));

Последний раз редактировалось Lemme, 29.12.2015 в 23:33.
Ответить с цитированием
  #6 (permalink)  
Старый 29.12.2015, 23:33
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Минимализм и быстродействие, вот что нам нужно, правда Lemme )
Lemme, а как теперь вывести эти нули в div без алертов?

Последний раз редактировалось Teamur, 29.12.2015 в 23:40.
Ответить с цитированием
  #7 (permalink)  
Старый 29.12.2015, 23:50
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
а как теперь вывести эти нули в div без алертов?
<style>
label{
  display:block;
  width:200px;
  text-align:right;
  margin:3px;
}
</style>
<form id=inp style="width:400px">
<label>Заполнитель: <input type='text' id='zap' maxlength='1'/></label>
<label>Число символов зап-ия: <input type='number' id='kol'/></label>
<label>Номер Страницы: <input type='number' id='page'/></label><br>
 <div id='output'></div>
</form>
<script type="text/javascript">
document.querySelector('#inp').oninput=function(){
var zap = document.getElementById('zap').value;
var kol = +document.getElementById('kol').value;
var page = document.getElementById('page').value;
var output = document.getElementById('output');

if(page&&page>0) output.innerHTML = zap.repeat(kol) + page;
}
</script>


На всякий случай, советую обратить внимание на:

https://developer.mozilla.org/en-US/.../String/repeat
Ответить с цитированием
  #8 (permalink)  
Старый 30.12.2015, 00:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Lemme,
Может лучше Array(kol).join(zap)

Последний раз редактировалось Deff, 30.12.2015 в 00:08.
Ответить с цитированием
  #9 (permalink)  
Старый 30.12.2015, 00:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Teamur,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<style>
label{
  display:block;
  width:200px;
  text-align:right;
  margin:3px;
}
</style>
<form id=inp style="width:400px">
<label>Заполнитель: <input type='text' id='zap' maxlength='1'/></label>
<label>Число символов зап-ия: <input type='number' id='kol'/></label>
<label>Номер Страницы: <input type='number' id='page'/></label><br>
 <div id='output'></div>
</form>
<script type="text/javascript">
function PrefInt(number, len, prefix) {
   return (Array(len).join(prefix) + number).slice(-len);
}

document.querySelector('#inp').oninput=function(){
var zap = document.getElementById('zap').value;
var kol = +document.getElementById('kol').value;
var page = +document.getElementById('page').value;
var output = document.getElementById('output');
var dop='';

if(page&&page>0)output.innerHTML = PrefInt(page, kol, zap);
}
</script>

</body>

</html>
Ответить с цитированием
  #10 (permalink)  
Старый 30.12.2015, 00:16
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Рони, при изменении числа символов должно быть (дб) динамическое изменение на выходе количества единиц заполнителя. Спасибо.

Если что - акцент на последние версии браузеров, другими словами (дс) полифилы пока не нужны. И как в данном примере по быстродействию? )

Последний раз редактировалось Teamur, 30.12.2015 в 00:23.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить функцию перед закрытием/перезагрузкой страницы Ol'kO Events/DOM/Window 17 24.04.2015 12:50
Загрузка страницы перед таймером porezon Общие вопросы Javascript 1 16.01.2015 23:48
Как и где задать цикл? Blondinka Events/DOM/Window 2 10.06.2014 15:29
Обрезание текста на определенное количество символов. hfts_rider Events/DOM/Window 7 05.02.2014 14:57
как посчитать/узнать количество обновлений страницы cOAPerator Общие вопросы Javascript 8 07.01.2013 16:51