根因:bricks Form的getValue()内部调用get_formdata()返回浏览器
原生FormData对象,不支持.cell_no属性访问。
改用_getValue()返回{name:value}普通JS对象。
164 lines
7.8 KiB
XML
164 lines
7.8 KiB
XML
{
|
|
"id": "login_window",
|
|
"widgettype": "PopupWindow",
|
|
"options": {
|
|
"title": "登录/注册",
|
|
"auto_open": true,
|
|
"anthor": "cc",
|
|
"cwidth": 22,
|
|
"cheight": 22
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "TabPanel",
|
|
"options": {
|
|
"tab_wide": "auto",
|
|
"height": "100%",
|
|
"width": "100%",
|
|
"tab_pos": "top",
|
|
"items": [
|
|
{
|
|
"name": "userpasswd",
|
|
"label": "用户密码",
|
|
"content": {
|
|
"widgettype": "Form",
|
|
"options": {
|
|
"cols": 1,
|
|
"fields": [
|
|
{
|
|
"name": "username",
|
|
"label": "用户名",
|
|
"uitype": "str"
|
|
},
|
|
{
|
|
"name": "password",
|
|
"label": "密码",
|
|
"uitype": "password"
|
|
}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "submit",
|
|
"actiontype": "urlwidget",
|
|
"target": "self",
|
|
"options": {
|
|
"method": "POST",
|
|
"url": "{{entire_url('up_login.dspy')}}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "checkcode",
|
|
"label": "手机验证码",
|
|
"content": {
|
|
"widgettype": "VBox",
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Form",
|
|
"id": "phone_form",
|
|
"options": {
|
|
"description": "限中国国内手机",
|
|
"fields": [
|
|
{
|
|
"name": "cell_no",
|
|
"label": "手机号",
|
|
"uitype": "str"
|
|
},
|
|
{
|
|
"name": "codeid",
|
|
"uitype": "hide",
|
|
"value": ""
|
|
},
|
|
{
|
|
"name": "check_code",
|
|
"label": "验证码",
|
|
"uitype": "str"
|
|
}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "submit",
|
|
"actiontype": "urlwidget",
|
|
"target": "self",
|
|
"options": {
|
|
"method": "POST",
|
|
"url": "{{entire_url('code_login.dspy')}}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"id": "gen_code_btn",
|
|
"options": {
|
|
"label": "发送验证码"
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "click",
|
|
"actiontype": "script",
|
|
"target": "self",
|
|
"script": "var form=bricks.getWidgetById('phone_form',bricks.app);if(!form){alert('form not found');return;}var vals=form._getValue();var cell=vals.cell_no;if(!cell){alert('请输入手机号');return;}this.options.label='发送中...';fetch(bricks.app.baseUrl+'/rbac/gen_sms_code.dspy?_webbricks_=1&cellphone='+encodeURIComponent(cell)).then(function(r){return r.json()}).then(function(d){var btn=bricks.getWidgetById('gen_code_btn',bricks.app);if(d.status==='ok'){form.setValue({codeid:d.data.key});if(btn){btn.options.label='已发送'}}else{alert(d.data.message);if(btn){btn.options.label='发送验证码'}}}).catch(function(e){alert('发送失败:'+e);var btn=bricks.getWidgetById('gen_code_btn',bricks.app);if(btn){btn.options.label='发送验证码'}})"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "register",
|
|
"label": "注册",
|
|
"content": {
|
|
"widgettype": "Form",
|
|
"options": {
|
|
"cols": 1,
|
|
"fields": [
|
|
{
|
|
"name": "username",
|
|
"label": "用户名",
|
|
"uitype": "str"
|
|
},
|
|
{
|
|
"name": "mobile",
|
|
"label": "手机号",
|
|
"uitype": "str"
|
|
},
|
|
{
|
|
"name": "password",
|
|
"label": "密码",
|
|
"uitype": "password"
|
|
},
|
|
{
|
|
"name": "cfm_password",
|
|
"label": "确认密码",
|
|
"uitype": "password"
|
|
}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "submit",
|
|
"actiontype": "urlwidget",
|
|
"target": "self",
|
|
"options": {
|
|
"method": "POST",
|
|
"url": "{{entire_url('register.dspy')}}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|