javascript if/else,但仍可编辑

javascript if/else, but still editable

我正在创建一个表单,如果复选框被选中,则需要一个字段与另一个字段相等,但如果用户决定更改金额,它仍然可以编辑。

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

现在只要勾选了那个分项框,那个输入框就不能编辑了。有没有办法让输入相等,但又保持开放以供修改?

谢谢。

试着从人类的角度来思考。

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

尝试为复选框添加监听器!

告诉我你能不能做到!

编辑:您可以做什么的示例(使用您的代码):

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/

将不同的处理程序直接附加到每个输入,其中每个处理程序将更改的输入的值复制到另一个输入。不使用 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 复选框后,您还需要一个处理程序。如果在这种情况下值不同,您只需选择一个(除非您想跟踪最后更改的值)。