我有使用JQuery
的Javascript代碼來創建包含自由文本,單選按鈕(單選)和複選框(單選題)問題的測驗。測驗是使用Web界面製作的,樣式爲Zurb - Foundation
,並且正在使用JSON進行序列化。雖然創建單選按鈕和複選框會回答特定問題,但當用戶檢查任一組件(例如將其標記爲有效答案)時,它應該驗證此結果,並且以「真」(由數字「1」)在JSON中。在Javascript中「檢查」問題的radiibuttons和複選框
它目前正在處理文本類型問題,因爲它基本上是硬編碼的。但是這對另外兩個人來說並沒有訣竅。
這裏的代碼的主件(如果有需要,我會編輯的問題):整體測驗
storeQuiz: function(event) {
var self = event.data;
var store = [];
$(self.element).find('.question-content').each(function(){
var question = $(this);
var entry = { options: [] };
if (question.parent().attr('class').match(/template/)) {
return true;
}
entry['content'] = question.find('.input').val();
entry['type'] = question.parent().attr('class').match(/quiz-(\w+)/)[1];
question.find('.option').each(function() {
var option = $(this);
var data = {};
if (entry.type === 'text') {
data['valid'] = true;
} else {
data['valid'] = !!option.find('.option-validation input').attr('checked');
}
data['content'] = option.find('.option-content textarea').val();
entry.options.push(data);
})
store.push(entry);
});
self.storeUpdate(store);
},
收音機:
buildRadios: function(data) {
var tmpl = this.radiosHandler({data: this});
var self = this;
tmpl.find('.option').remove();
tmpl.find('.input').val(data.content);
$.each(data.options, function() {
var plus = tmpl.find('.add');
var option = self.addAnswer.call(plus, {data: self});
option.find('.option-validation input').attr('checked', this.valid);
option.find('.option-content textarea').val(this.content);
});
},
複選框:
buildCheckboxes: function(data) {
var tmpl = this.checkboxesHandler({data: this});
var self = this;
tmpl.find('.option').remove();
tmpl.find('.input').val(data.content);
$.each(data.options, function() {
var plus = tmpl.find('.add');
var option = self.addAnswer.call(plus, {data: self});
option.find('.option-validation input').attr('checked', this.valid);
option.find('.option-content textarea').val(this.content);
});
},
您是否在您的瀏覽器控制檯中看到錯誤?我想知道'tmpl.find('.add');'語句。我不認爲'tmpl'是一個jQuery對象,因此我不相信它會有find方法。可能'$(tmpl)'?... – War10ck
@ War10ck據我所知,我沒有收到任何錯誤。我只是檢查文件。也許一些JS調試可以提供一些信息。 –
JS可能是你的錯誤發生的地方(如果你得到一個錯誤)。在瀏覽器中查看頁面時,按*** F12 ***打開調試器控制檯。 – War10ck