Reputation: 155
This function is called on an onchange event of a checkbox. When checked i.e. receiver details are same to sender details, receiver inputs are assigned the value of sender input and get disabled. When unchecked i.e. not same details, receiver inputs are enabled and emptied.
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");
}
});
Upvotes: 1
Views: 55
Reputation: 15104
I'm not sure if this is what you are looking for. But i'll go on something like this:
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");
}
}
}
It is more maintainable this way.
If you can use recent javascript (ES6), there's multiple improvements you can add.
Upvotes: 1