javascript if / else,但仍可编辑

时间:2017-01-10 20:30:14

标签: javascript event-listener

如果选中了复选框,我创建的表单要求字段与另一个字段相等,但如果用户决定更改金额,则仍可编辑。

document.addEventListener("change", myFunction2);
     function myFunction2(){
          if (document.getElementById('itemize').checked==true) { 
              document.getElementById('six').value = document.getElementById('jobs_9').value;
    }

现在只要选中该项目大小框,就无法编辑该输入框。有没有办法让输入相等,但也可以将其打开进行修订?

感谢。

2 个答案:

答案 0 :(得分:1)

将不同的处理程序直接附加到每个输入,其中每个处理程序将更改的输入的值复制到另一个输入。不使用jQuery,你可以这样做:

(function () {
    var itemize = document.getElementById('itemize');

    function addChangeListener(from, to) {
        from = document.getElementById(from);
        to = document.getElementById(to);

        from.addEventListener('change', function () {
            if (itemize.checked) {
                to.value = from.value;
            }
        }
    }

    addChangeListener('six', 'jobs_9');
    addChangeListener('jobs_9', 'six');
})();

选中#itemize复选框后,您还需要一个处理程序。如果在这种情况下值不同,您只需选择一个(除非您想跟踪最后更改的那个)。

答案 1 :(得分:0)

尝试在人类版本中更多地考虑它。

您说:当文档更改时,如果选中该复选框,则字段将相等。

尝试在复选框中添加一个监听器!

告诉我你是否可以做到!

编辑:您可以执行的操作示例(使用您的代码):

var checkboxy = document.getElementById('itemize');

checkboxy.addEventListener("change", myFunction2);
     function myFunction2(){
          if (document.getElementById('itemize').checked==true) { 
              document.getElementById('six').value = document.getElementById('jobs_9').value;
    }
 }

工作:https://jsfiddle.net/pb2740yy/