Closed huacnlee closed 11 years ago
比如: starrating 和 switcher
这两个是非标准控件,这类控件在用于传统 Form 提交的场景会非常不变,因为没有一个标准的控件用于接受它的最终值,而是的使用的时候不得不用 JS 去获取这个非标准控件的值。这样给后端开发者带来一些不便。
非标准控件
假如我们可以再这些“非标准”控件里面植入 <input type="hidden" name="foobar" /> 这么一个隐藏的文本框,在非标准控件 change 的时候将结果放入此文本框里面,那么后端开发者就可以直接在 Form 提交以后,在服务器通过 foobar 这个参数获取到这个控件的最终值 (当然 foobar 可以由组件使用者来自由定义),而无需在 Form 提交前再单独调用 JS 获取结果。
<input type="hidden" name="foobar" />
foobar
<form action="/articles" method="GET"> <div bx-name="switcher"> <input type="hidden" name="publish" value="true" /> <label>公开</label> <div id="bx_switcher_post_publish" bx-name="switcher" bx-tmpl="switcher" class="switcher switcher-on"> <span class="switcher-trigger"></span> </div> <label>不公开</label> </div> </form>
仅仅需要在 switcher 切换的时候改变上面那个文本框的值就可以了。
在后端代码的时候就只需要获取 publish 这个参数的值就可以拿到选择的结果的。
对于“非标准控件”赋值这个动作我们也应该支持通过修改这个文本框的内容而改变“非标准控件”的展示效果。
BTW. 目前 Dropdown 就是以这种方式来实现的
僭越一下,应该加个合适的 input[type=hidden] 就可以了吧。左莫莫 @keyapril 同学是否已经完成了这块工作?记得回复并关闭这个 issue 哦……
另外,可以在 commit message 里填写 fixes #19 来自动关闭这个 issue
其他组件看需要再添加。
比如: starrating 和 switcher
这两个是
非标准控件
,这类控件在用于传统 Form 提交的场景会非常不变,因为没有一个标准的控件用于接受它的最终值,而是的使用的时候不得不用 JS 去获取这个非标准控件
的值。这样给后端开发者带来一些不便。但是............
假如我们可以再这些“非标准”控件里面植入
<input type="hidden" name="foobar" />
这么一个隐藏的文本框,在非标准控件
change 的时候将结果放入此文本框里面,那么后端开发者就可以直接在 Form 提交以后,在服务器通过foobar
这个参数获取到这个控件的最终值 (当然 foobar 可以由组件使用者来自由定义),而无需在 Form 提交前再单独调用 JS 获取结果。以 switcher 为例:
仅仅需要在 switcher 切换的时候改变上面那个文本框的值就可以了。
在后端代码的时候就只需要获取 publish 这个参数的值就可以拿到选择的结果的。
再到回来看,关于给“非标准控件”值修改
对于“非标准控件”赋值这个动作我们也应该支持通过修改这个文本框的内容而改变“非标准控件”的展示效果。