Javascript 如何缩短此功能?
在复选框的onchange事件上调用此函数。 当选中时,即接收方详细信息与发送方详细信息相同,接收方输入被分配发送方输入值并被禁用。 未选中时,即不相同的详细信息,接收器输入被启用并清空Javascript 如何缩短此功能?,javascript,function,Javascript,Function,在复选框的onchange事件上调用此函数。 当选中时,即接收方详细信息与发送方详细信息相同,接收方输入被分配发送方输入值并被禁用。 未选中时,即不相同的详细信息,接收器输入被启用并清空 function () { if (inputArr.sameReciever.checked) { inputArr.receiverName.value = inputArr.senderName.value; inputArr.receiverPhone.value
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");
}
});
我不确定这是否是你要找的。但我会继续这样说:
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),您可以添加多项改进。删除所有换行符和空白?但很严肃地说,可能不会太严重……也许在作为参数传递的对象中创建一个具有不同值的函数?考虑一下——为什么要缩短它?很清楚它是做什么的,它是可维护的。。。我就让它保持原样?