Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как временно запретить вызов функции? (https://javascript.ru/forum/misc/31300-kak-vremenno-zapretit-vyzov-funkcii.html)

Dazar 02.09.2012 15:20

Как временно запретить вызов функции?
 
Мне нужно, чтобы пока пользователь не нажал кнопки "сохранить" или "отмена", он бы не мог использовать другие функции на странице. Как это сделать?
Мне на ум приходит только объявление глобальной переменной vykluchatel, проверку у каждой функции: if(vykluchatel==true){выполнить функцию}. При начале редактирования текста vykluchatel=false, при нажатии на "сохранить" или "отмена" vykluchatel=true.

Есть другие варианты?

Deff 02.09.2012 15:32

Dazar,
Мон на сохранить поставить Окно prompt

var Yes=prompt('Отвечай, немедля-Cохранить или Отмена?','Yes')

lord2kim 02.09.2012 15:32

Dazar, если под
Цитата:

Сообщение от Dazar (Сообщение 202591)
другие функции на странице

подразумевается несколько кнопок, то таковые можно задисаблить...

Dazar 02.09.2012 15:40

На странице ещё десяток функций, чтобы менять столбцы таблиц местами, удалять и добавлять блоки текста, запускать ракету в космос.. А ещё есть текст, при нажатии специальной кнопки вместо него появляется textarea. Так вот, мне надо, чтобы пока пользователь не закончил редактирование этого поля(нажатием сохранить/отменить), он не мог запускать ракету в космос, менять столбцы и т.д.

Deff 02.09.2012 15:45

Dazar,
По событию - запускаете prompt - штука специально сделана для приостановки до ответа от пользователя

Dazar 02.09.2012 15:55

Видимо я не понятно объяснил, вижу, что меня не поняли. Мне нужно так - нажал на кнопку - половина других кнопок стала некликабельными.

Deff 02.09.2012 16:20

Цитата:

Сообщение от Dazar
Видимо я не понятно объяснил, вижу, что меня не поняли. Мне нужно так - нажал на кнопку

Нажал на кнопку - выскочило окно, до Ответа на него - пользователь ничего нажать не сможет!

<style type="text/css">
#but2{
   opacity:1.0;
   transition-duration: 1.96s;
  -webkit-transition-duration: 1.96s;
  -moz-transition-duration: 1.96s;
  -o-transition-duration: 1.96s;
  -ms-transition-duration: 1.96s; /* IE9+ */
}
</style>

<input id="but" type="button" onclick="Func()" value="Показать?">
<br /><br />
<input id="but2" style="opacity:0.0;" type="button" value="Получить 1000 руб">


<script type="text/javascript">
function Func() {
  document.getElementById('but2').style.opacity='1.0';
  var Yes=prompt('Отвечай, немедля-Cохранить или Отмена?','Yes')
  document.getElementById('but2').style.opacity='0.0';
}
</script>

9xakep 02.09.2012 21:08

<input type='button' onclick='func()' id='main' value='main'>
<div id = 'buttons'>
<input type='button' value='Нажать нельзя'>
<input type='button' value='Нажать нельзя'>
<input type='button' value='Нажать нельзя'>
</div>
<script>
function func() {
var but = document.getElementById('buttons').getElementsByTagName('input')
for (i=0;i<but.length;i++) but[i].disabled = true;
}
</script>

Dazar 02.09.2012 21:45

Окау, меня упорно не хотят понимать, а код я выложить не могу(
Ладно, я сам решу вопрос)

lord2kim 02.09.2012 22:52

Цитата:

Сообщение от Dazar (Сообщение 202609)
Мне нужно так - нажал на кнопку - половина других кнопок стала некликабельными.

вам же 9xakep написал как это сделать...
или вы хотите чтобы появился темный фон на странице, поверх которого будет div с формой и кнопками сохранить/отмена ?
в каждую функцию засовывать проверку флага, как вы привели, не вариант...

Цитата:

Сообщение от Dazar (Сообщение 202677)
Окау, меня упорно не хотят понимать, а код я выложить не могу(

не можете привести код, приведите скриншот и укажите на нем, что и когда должно быть доступно/недоступно


Часовой пояс GMT +3, время: 22:59.