2013-08-28 65 views
1

我想计划我的儿子1岁生日派对。我住在夏威夷,所以当你邀请一个人,有时他们往往会带来他们的朋友,姐妹,表兄弟姐妹,auntys,叔叔,狗等.....但由于我们保留我的儿子派对会场有座位数量有限,我们不能只有更多的人来。另外,我们正在通过头部/座位进行支付。有没有办法为Google表单创建脚本来检查电子表格?

所以随着中说,我有我的宾客名单的电子表格,并有我已经限制了每个邀请的座位数量列。我想为每个邀请分配一个代码。

例如
姓|座位|代码
Family A | 3个座位| ABC123
家族B | 5个座位| DEF456

所以,如果我把请柬上的QR码,并给每个邀请/家庭他们的代码,

我想谷歌的形式,让每个接收者进入他们的代码和脚本来检查我的电子表格他们输入的这段代码使得表格知道收件人有多少个席位被限制预留。

家庭A只能预留3个座位,家庭B只能预留5个座位,不能再预订。

有没有办法做到这一点?

回答

0

您无法在Google表单字段中输入代码,并且脚本函数会在后面运行。因此杀死可以检查另一个字段的验证。只有在表格提交后才能查看回复,你可以检查值是什么。

如果您坚持使用单一Google表单,您可以编写一个脚本来监控提交内容并发送电子邮件或让他们知道他们预订了太多人(事后)。也可以编写一个脚本,为已经将最大客人编入下拉列表的每个邀请创建单独的表单。然后发送每个邀请自己的表单url。

另一种方法是使用2个UI服务之一编写自己的应用程序,这个服务就像一个表单。在那里你可以与用户输入和你想要的验证进行交互。以UiApp为例...

var MAX = []; 
MAX['123'] = [2]; 
MAX['456'] = [3]; 

function doGet() { 
    var app = UiApp.createApplication(); 
    var panel = app.createVerticalPanel(); 
    var code = app.createTextBox().setId('code').setName('code'); 
    var guests = app.createTextBox().setId('guests').setName('guests'); 
    var submit = app.createButton('SUBMIT').setId('submit').setEnabled(false); 
    var status = app.createLabel('', false).setId('status'); 

    var handler = app.createServerHandler('checkGuests').addCallbackElement(panel); 
    guests.addValueChangeHandler(handler); 

    handler = app.createServerHandler('submit').addCallbackElement(panel); 
    submit.addClickHandler(handler); 

    panel.add(code).add(guests).add(submit).add(status); 
    app.add(panel); 
    return app; 
} 

function checkGuests(e) { 
    var app = UiApp.getActiveApplication(); 
    var code = e.parameter.code; 
    var guests = e.parameter.guests; 

    if (code == '' || code == undefined) { 
    app.getElementById('submit').setEnabled(false) 
    app.getElementById('status').setText('Please enter your code.'); } 
    else if (parseInt(guests) <= MAX[code]) { 
    app.getElementById('submit').setEnabled(true); 
    app.getElementById('status').setText(''); } 
    else { 
    app.getElementById('submit').setEnabled(false) 
    app.getElementById('status').setText('Whoops, too many people!'); } 
    return app; 
} 

function submit(e) { 
} 
相关问题