Sep 02, 2021 12:56 PM
I have a button/script that I want to be a toggle the value in a single select field. If the value is blank, I want to e button to mark it “Absent”; if the value is “Absent”, I want the button/script to make the cell blank.
In Airtable Scripting, I see how to delete choices, but I don’t think I want to delete the choice, just the value. (I am trying to avoid having a second option of “Present”, as I know my users will assume they have to mark all clear cells as “Present”.)
Here’s my script:
// Select the recordId that houses the button
let tableClassReg = base.getTable("Class Reg");
let record = await input.recordAsync('',tableClassReg).catch()
//console.log(record.id, record.name);
// read in a specific field
let entry = record.getCellValue("D1 Atnd");
// toggle that field
if (entry.name=="Absent") {
await tableClassReg.updateRecordAsync(record, {
'D1 Atnd':{"name":""} //<-- here's the problem
});
} else {
await tableClassReg.updateRecordAsync(record, {
'D1 Atnd':{"name":"Absent"}
});
};
I’ve tried “”, empty square brackets, null. But it doesn’t seem to allow me to force it to clear a value from a cell. Should I be using a different call?
Related: if I give a user a read-only view link, will the button fail to work at all?
Solved! Go to Solution.
Sep 02, 2021 02:03 PM
Both of the following work for me:
await table.updateRecordAsync(record, {"Single Select": null})
await table.updateRecordAsync(record, {"Single Select": undefined})
Yes.
Sep 02, 2021 02:03 PM
Both of the following work for me:
await table.updateRecordAsync(record, {"Single Select": null})
await table.updateRecordAsync(record, {"Single Select": undefined})
Yes.
Sep 03, 2021 12:44 PM
Correct on all accounts. Thank you!
(I was really hoping I found a sneaky way around Airtable’s inability to grant limited access.)