如何缩短这个功能?

时间:2018-03-01 13:45:53

标签: javascript function

在复选框的onchange事件上调用此函数。 当检查,即接收者详细信息与发送者详细信息相同时,接收者输入被分配发送者输入的值并被禁用。 如果未选中,即不相同的细节,接收器输入将被启用并清空。

function () {
    if (inputArr.sameReciever.checked) {
        inputArr.receiverName.value = inputArr.senderName.value;
        inputArr.receiverPhone.value = inputArr.senderPhone.value;
        inputArr.receiverEmail.value = inputArr.senderEmail.value;
        inputArr.receiverName.setAttribute("disabled","true");
        inputArr.receiverPhone.setAttribute("disabled","true");
        inputArr.receiverEmail.setAttribute("disabled","true");
    }else{
        inputArr.receiverName.value = "";
        inputArr.receiverPhone.value = "";
        inputArr.receiverEmail.value = "";
        inputArr.receiverName.removeAttribute("disabled");
        inputArr.receiverPhone.removeAttribute("disabled");
        inputArr.receiverEmail.removeAttribute("disabled");
    }
});

1 个答案:

答案 0 :(得分:1)

我不确定这是不是你要找的东西。但我会继续这样的事情:

var attributesMap = {
    receiverName: 'senderName',
    receiverPhone: 'senderPhone',
    receiverEmail: 'senderEmail'
};

function fn() {
    for (var key in attributesMap) {
        if (inputArr.sameReciever.checked) {
            inputArr[key].value = inputArr[attributesMap[key]].value;
            inputArr[key].setAttribute("disabled","true");
        } else {
            inputArr[key].value = '';
            inputArr[key].removeAttribute("disabled");
        }
    }
}

这种方式更易于维护。

如果你可以使用最近的javascript(ES6),你可以添加多项改进。