Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: JavaScript: число в диапазон от 0 до 35
 
 автор: shkarbatov   (23.07.2011 в 23:11)   письмо автору
 
 

1) Помоги пожалуйста, написать посредством javascript регулярное выражение разрешающее вводить только цифры в диапазоне от 35 до 100

2) У меня есть select и тег input.

<script>
function c(elem) {
document.getElementById('r')_innerHTML = elem.value;
}
</script>
<select onchange="c(this)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div id="r"></div>

Подскажите пожалуйста как без перезагрузки страницы сформировать регулярное выражение
которое бы получало значение из select и формировало регулярку (только цифры, в диапазоне от 1 до значения select деленного на 2)

Помогите пожалуйста, к сожалению с javascript и регулярками не работал.


Заранее всем спасибо!

  Ответить  
 
 автор: f111   (23.07.2011 в 23:36)   письмо автору
 
   для: shkarbatov   (23.07.2011 в 23:11)
 

1) от 35 не возможно, и зачем именно регулярка? (веяние моды?)

2) при работе с JS перезагрузки (обновления) не происходят, если только не редирект

опишите полностью чего вы хотите добиться скриптом, какие задачи, вдруг предложим более оптимальный вариант (мало ли)

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 00:03)   письмо автору
 
   для: f111   (23.07.2011 в 23:36)
 

1) надо просто разрешить пользователю вводить в поле только числа в диапазоне от 35 до 100

2) У меня есть выпадающее меню, я там выбираю число (к примеру 40), есть еще и тег input, там мне надо проконтролировать пользователя на ввод чисел в тег input, разрешено вводить в диапазоне от 1 до 40/2 (то есть от 1 до выбранного значения в выпадающем списке деленое на 2)

  Ответить  
 
 автор: cheops   (23.07.2011 в 23:43)   письмо автору
 
   для: shkarbatov   (23.07.2011 в 23:11)
 

А не проще это значение сравнить с числом? Вы именно регулярными выражениями хотите решить задачу? Вот именно от 35 до 100 довольно затруднительно зажать при помощи регулярных выражений - так как они не значения проверяют, а форму строки...

  Ответить  
 
 автор: shkarbatov   (23.07.2011 в 23:56)   письмо автору
 
   для: cheops   (23.07.2011 в 23:43)
 

Нет, можно решить не только регуляркой. Мне надо сделать проверку, что бы пользователю было разрешено вводить в поле только числа в диапазоне от 35 до 100

  Ответить  
 
 автор: f111   (24.07.2011 в 00:02)   письмо автору
 
   для: shkarbatov   (23.07.2011 в 23:56)
 

if(x>35 && x<100) - не "канает" уже?

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 00:07)   письмо автору
 
   для: f111   (24.07.2011 в 00:02)
 

А на примере можно?

Как занести в переменную значение тега?

  Ответить  
 
 автор: cheops   (24.07.2011 в 00:06)   письмо автору
 
   для: shkarbatov   (23.07.2011 в 23:56)
 

Можно начать отталкиваться от следующего скрипта
<script>
 function c(elem) {
   var r = document.getElementById('r');
   if(elem.value >= 35 && elem.value <= 100)
     r.innerHTML = elem.value;
   else
     r.innerHTML = "Введите значение от 35 до 100";
 }
</script>
<input id="id_text" onkeyup="c(this)" />
<div id="r"></div>

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 00:08)   письмо автору
 
   для: cheops   (24.07.2011 в 00:06)
 

Оперативненько, спасибо. Сейчас попробую.

А как потом работать с этим значением, как его засунуть к примеру в POST массив?

  Ответить  
 
 автор: f111   (24.07.2011 в 00:23)   письмо автору
 
   для: shkarbatov   (24.07.2011 в 00:08)
 

>А на примере можно?

это уже пример

>Как занести в переменную значение тега?

смотря какого тега, если инпут то document.getElementById('input_id').value
если селект то option_select = this.options[this.selectedIndex].value; (хотя могу ошибаться, давно не ковырялся)
--------------
function sel(t){
var input_val = document.getElementById('input_id').value;
var option_select = t.options[t.selectedIndex].value;
//вроде так

//а тут хз, не понимаю что за вычисления вам нужны, туповат я(
}

<select onchange="sel(this)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

------------------
>А как потом работать с этим значением, как его засунуть к примеру в POST массив?

отправьте форму

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 00:29)   письмо автору
 
   для: f111   (24.07.2011 в 00:23)
 

На счет первого - вопрос я написал до того как появился пример =) тогда то я и дописал фразу оперативненько.

На счет отправки формы - эт я просто затупил =)

Как занести вытянутое значение в переменную понятно, а как потом его добавить в проверку тега input? Так?

<script>
function c(elem) {
var r = document.getElementById('r');
if(elem.value >= 35 && elem.value <= (option_select/2))
r.innerHTML = elem.value;
else
r.innerHTML = "Введите значение от 35 до 100";
}
</script>
<input id="id_text" onkeyup="c(this)" />
<div id="r"></div>

  Ответить  
 
 автор: f111   (24.07.2011 в 00:36)   письмо автору
 
   для: shkarbatov   (24.07.2011 в 00:29)
 

тип того.
используйте метод тыка, гениальная разработка учёных, всегда помогает, ну а если нет, тогда форум))

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 00:39)   письмо автору
 
   для: f111   (24.07.2011 в 00:36)
 

Спасибо большое - пошел тыкать =)

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 00:53)   письмо автору
 
   для: f111   (24.07.2011 в 00:36)
 

Что-то туплю (трудновато тыкать, когда ты и понятия не имеешь куда именно тыкать =))

<script>
function sel(t){
var input_val = document.getElementById('input_id').value;
var option_select = t.options[t.selectedIndex].value;
}
</script>

<select onchange="sel(this)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>


<script>
function c(elem) {
var r = document.getElementById('r');
if(elem.value >= 35 && elem.value <= (option_select/2))
r.innerHTML = elem.value;
else
r.innerHTML = "Введите значение от 35 до 100";
document.write(option_select);
}

</script>
<input id="id_text" onkeyup="c(this)" />
<div id="r"></div>

  Ответить  
 
 автор: f111   (24.07.2011 в 12:05)   письмо автору
 
   для: shkarbatov   (24.07.2011 в 00:53)
 

>трудновато тыкать, когда ты и понятия не имеешь куда именно тыкать =)
книжки читайте, все так учились

наверно так
<script type="text/javascript">
function c(elem)
{
    var r = document.getElementById('r');
    var sel = document.getElementById('sel');
    sel = parseInt(sel.options[sel.selectedIndex].value);
    elem = parseInt(elem.value);
    if(elem>=35 && elem<Math.round(sel/2))
    r.innerHTML = elem;
    else
    r.innerHTML = "Введите значение от 35 до 100";
}
</script>

<select id="sel">
<option value="1">1</option>
<option value="2">2</option>
<option value="100">100</option>
</select>
<input onkeyup="c(this)" />
<div id="r"></div>

что не понятно спрашивайте

  Ответить  
 
 автор: shkarbatov   (24.07.2011 в 15:58)   письмо автору
 
   для: f111   (24.07.2011 в 12:05)
 

Именно то, что надо! Только round сменил на floor.

А так именно то, что надо. Спасибо большое!


А на счет возможности ввода только цифр в заданном диапазоне, может кому-то пригодиться:

<script>
function fat(elem) {
var f = document.getElementById('f');
elem.value = elem.value.replace(/[^\d]/g, '');
if(elem.value >= 35 && elem.value <= 120)
f.innerHTML = "";
else
f.innerHTML = "Введите значение от 35 до 100";
}
</script>

<p class="type1">
<input name="fat_" onkeyup="fat(this)"/> Толщина пакета, мкм
<div id="f"></div>
</p>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования