Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onclick только если onchange (https://javascript.ru/forum/misc/55222-onclick-tolko-esli-onchange.html)

qwe88 18.04.2015 14:43

onclick только если onchange
 
Добрый день!
Есть два неких инпута с прописанными onchange и onclick с вызовами разных функций.
Как сделать так, что бы если у первого сработал onchange, то у второго активировался onclick (и когда кликнут по второму инпуту, произойдет вызов определенной функции).
А если у первого не сработал onchange, то и у второго не будет срабатывать onclick

Если не очень понятно, могу наглядный пример нарисовать

рони 18.04.2015 14:53

qwe88,
сделайте в клик проверку checked первого input

qwe88 18.04.2015 18:17

Забыл уточнить, что у меня инпуты текстовые, а не чекбоксы

qwe88 18.04.2015 18:28

В общем мне нужная такая штука, только видимо не так пишу, вот и не работает:
Код:

<input onchange="chbe()" type="text" id="bebe">
<input onclick="clib2()" type="text" id="bebe2">

<script>
    var bebe = document.getElementById("bebe");
    var bebe2 = document.getElementById("bebe2");

    function chbe(){
        bebe2.value = bebe.value; //тут дубль одного поля в другое
    }

    function clib2(){ //тут если если первое поле было поменяно, то будет вызов функции
        if (bebe.onchange){
            eslicl()
        }
        else{ // если не поменяно, то вызова не будет
           
        }
    }

    function eslicl(){ // это сама функция, которая вызывается при первом условии
        alert("slova")
    }

</script>


рони 18.04.2015 19:39

qwe88,
:-?
<!DOCTYPE HTML>

<html>

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

<body>
 <input onchange="chbe()" type="text" id="bebe">
<input onclick="clib2()" type="text" id="bebe2">

<script>
    var bebe = document.getElementById("bebe");
    var bebe2 = document.getElementById("bebe2");
    var change = false;
    function chbe(){
        bebe2.value = bebe.value; //тут дубль одного поля в другое
        change = bebe.defaultValue != bebe.value;
    }

    function clib2(){ //тут если если первое поле было поменяно, то будет вызов функции
        if (change){
            eslicl()
        }
        else{ // если не поменяно, то вызова не будет

        }
    }

    function eslicl(){ // это сама функция, которая вызывается при первом условии
        alert("slova")
    }

</script>
</body>

</html>

qwe88 18.04.2015 19:44

Допер)))
<input onchange="chbe()" type="text" id="bebe">
<input type="text" id="bebe2">

<script>
    var bebe = document.getElementById("bebe");
    var bebe2 = document.getElementById("bebe2");

    function chbe(){
        bebe2.value = bebe.value;
        bebe2.onclick = function(){
            alert("slova")
        }
    }



</script>

qwe88 18.04.2015 19:48

рони,
Спасибо огромное за помощь)

qwe88 18.04.2015 21:06

Подскажите, пожалуйста, как поставить запрет на вызов функции второй раз?

рони 18.04.2015 21:13

qwe88,
поставь переменную запиши что уже запускалось проверяй перед запуском или обнули onclick после того как функция отработает

qwe88 18.04.2015 21:15

Супер!!
Спасибо!


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