Javascript Backbone.js表单数据
我一直在看backbone.js教程,但对于如何将表单数据保存到新对象中,以便以后保存到数据库中,我仍然感到困惑 因此,基本上我有一个动态生成的表单,称为“真/假”,用户填写该表单以生成一个真或假问题。现在,在提交时,我需要将表单数据保存到一个对象。希望这是有道理的。现在它只在console.log中显示一个属性,但我需要的是编辑的属性加上代码中定义的默认值。非常感谢您的任何建议/帮助,是的,我有RTFMJavascript Backbone.js表单数据,javascript,jquery,backbone.js,underscore.js,Javascript,Jquery,Backbone.js,Underscore.js,我一直在看backbone.js教程,但对于如何将表单数据保存到新对象中,以便以后保存到数据库中,我仍然感到困惑 因此,基本上我有一个动态生成的表单,称为“真/假”,用户填写该表单以生成一个真或假问题。现在,在提交时,我需要将表单数据保存到一个对象。希望这是有道理的。现在它只在console.log中显示一个属性,但我需要的是编辑的属性加上代码中定义的默认值。非常感谢您的任何建议/帮助,是的,我有RTFM (function() { window.App = { Models: {},
(function() {
window.App = {
Models: {},
Collections: {},
Views: {}
};
App.Models.TestTypes = Backbone.Model.extend({
});
App.Collections.TestTypes = Backbone.Collection.extend({
model: App.Models.TestTypes
});
App.Views.TestTypes = Backbone.View.extend({
el: $('div.add-btn'),
events: {
'click button.btn-add-tf' : 'addTrueFalse',
'click button.btn-add-mult' : 'addMult',
'click button.btn-add-short' : 'addShort',
'click button.btn-add-essay' : 'addEssay'
},
// event handling functions
addTrueFalse: function(e) {
e.preventDefault();
this.addTrueFalseForm();
this.addTrueFalsePreview();
},
addTrueFalseForm: function(e) {
$('.new-questions').append('<div class="add-question"><form action="">' +
'<div class="remove-btn">x</div>' +
'<span style="font-weight: normal;;"><em>True / False</em></span></p>' +
'<label for="Question_description">Question</label><br />' +
'<input type="text" name="question[description]" class="tf-desc" /><br />' +
'True <input type="radio" name="question_answer[answer]" id="question_answer[correct]" value="1" />' +
' False <input type="radio" name="question_answer[answer]" id="question_answer[correct]" value="0" /><br />' +
'<input type="submit" value="Save" /></form>' +
'</div>');
},
addTrueFalsePreview: function(e) {
$('#test-preview').append("<p>Preview</p>");
}
});
App.Views.NewTestType = Backbone.View.extend({
el: '.new-questions',
events: {
'submit': 'addTest'
},
addTest: function(e) {
e.preventDefault();
var addTestData = $(e.currentTarget).find('.tf-desc').val();
var task = new App.Models.TestTypes({ description: addTestData });
this.collection.add(task);
console.log(task);
}
});
var testTypesCollection = new App.Collections.TestTypes([
{
defaults: {
questions: 0,
type: "",
description: "",
require_review: 0,
max_points: 0,
is_bonus: 0,
order: 0,
case_sensitive: 0,
answer: "",
points: 0,
is_correct: 0
}
}]);
var addTest = new App.Views.NewTestType({ collection: testTypesCollection });
var question = new App.Views.TestTypes({ collection: testTypesCollection });
})();
(函数(){
window.App={
型号:{},
集合:{},
视图:{}
};
App.Models.TestTypes=Backbone.Model.extend({
});
App.Collections.TestTypes=Backbone.Collection.extend({
模型:App.Models.TestTypes
});
App.Views.TestTypes=Backbone.View.extend({
el:$('div.add-btn'),
活动:{
'单击按钮。btn添加tf':'addTrueFalse',
'单击按钮。btn添加多个':'添加多个',
'单击按钮。btn添加短消息':'添加短消息',
'点击按钮。btn添加文章':'附录'
},
//事件处理功能
addTrueFalse:函数(e){
e、 预防默认值();
这个.addTrueFalseForm();
这个.addTrueFalsePreview();
},
addTrueFalseForm:函数(e){
$('.新问题')。附加(''+
“x”+
'正确/错误'+
“问题
”+
“
”+
“真的”+
“False
”+
'' +
'');
},
addTrueFalsePreview:函数(e){
$(“#测试预览”)。追加(“预览””;
}
});
App.Views.NewTestType=Backbone.View.extend({
el:'新问题',
活动:{
“提交”:“添加测试”
},
addTest:函数(e){
e、 预防默认值();
var addTestData=$(e.currentTarget).find('.tf desc').val();
var task=new App.Models.TestTypes({description:addTestData});
this.collection.add(任务);
console.log(任务);
}
});
var testtypescolection=new App.Collections.TestTypes([
{
默认值:{
问题:0,,
类型:“,
说明:“,
需要检查:0,
最高分数:0,
是奖金:0,
订单:0,
区分大小写:0,
答复:",,
分数:0,,
_是否正确:0
}
}]);
var addTest=new App.Views.NewTestType({collection:testtypescolection});
var question=new App.Views.TestTypes({collection:testtypescolection});
})();
我将使用的CompositeView/CollectionView和ItemView来实现您的想法
如果您使用其中一个PHP restful框架来处理主干网,这将更加容易 是否需要将表单数据保留在客户端上?目前还不清楚表单与您将使用的模型或集合之间的关系。如果您不需要将表单数据放入客户端模型中,您可以在表单提交时从视图直接调用ajax。是的。表单数据用于创建考试,我认为允许在创建考试时查看该考试的功能将对我的用户非常有益,因为并非所有人都精通技术。我要做的与Stripes API文档类似:在我尝试主干网之前是一个旧的原型。这就是我要说的:啊,你存储的数据是问题,问题类型,等等?如果是这样的话,那么你似乎希望你的集合是一个问题集合,你需要一个带有属性的模型来捕获问题、问题类型等。这听起来像你要做的吗?是的,听起来和我要做的完全一样。我有php背景,而不是javascript,所以项目的这方面变得非常困难。你能给我指一下正确的方向吗?书籍、文章、提示等?