首先感谢backbone-forms的家伙,他们创建了一个完美集成在backbone.js框架中的工具。
我正在使用backbone.js和backbone-forms插件,但我需要创建条件字段。
假设我有以下表格。
我想根据select
中选择的值显示(或不显示)带有thext或textarea的单行输入。
<form method="post" action="">
<select >
<option value="" selected="selected">choose one</option>
<option value="1" >line</option>
<option value="2" >area</option>
</select>
<input id="element_1" />
<textarea id="element_2" ></textarea>
</form>
此类行为默认在骨干网中实现?
如果没有,我如何使用javascript和backone-forms实现它?
感谢。
答案 0 :(得分:7)
您可以将事件绑定到select元素,并让它们切换其他表单元素的可见性。
试试这个:
$(function() {
//The form
var form = new Backbone.Form({
schema: {
inputType: { type: 'Select', options: ['line', 'area'] },
line: 'Text',
area: 'TextArea'
}
}).render();
form.fields['area'].$el.hide();
form.on('inputType:change', function(form, editor) {
form.fields['line'].$el.toggle();
form.fields['area'].$el.toggle();
});
//Add it to the page
$('body').append(form.el);
});
以下是一些实时代码:http://jsfiddle.net/shioyama/grn6y/
源于此:https://groups.google.com/d/topic/backbone-forms/X5eVdTZWluQ/discussion
答案 1 :(得分:2)
没有默认的实现。其实完全靠你自己也很简单,请参考下面的代码:
//Pseudo code
var line = $("element_1"),area = $("element_2");
if(selectvalue ==="1"){
line.show();
area.hide();
}
else{
line.hide();
area.show();
}