Согласно этому JSFIDDLE --
Я сходил с ума, пытаясь понять это последние 48 часов. Все работает, кроме галочки. Я включил изолированный фрагмент кода, который вызывает проблему.
После того, как я создал поля (нажав кнопку флажка) и завершил форму, мне удалось увидеть code
и я смог сериализовать флажки в JSON
, но в итоге я получил «включено» для всех флажков, даже если только один из них отмечен .
Когда я установил только один (первый флажок) и другие флажки не отмечены и нажал «сохранить», я получаю это в результате:
{"ck1":"on","ck2":"on","ck3":"on","submit1":"save"}
Что испортило результат? Я делаю что-то не так в этом коде?
Буду признателен за помощь в выявлении проблемы.
Моя цель — увидеть JSON в этом формате, когда у меня установлен первый флажок:
{"ck1":"on","submit1":"save"}
или любой формат, который вы бы предложили.
ОТРЕДАКТИРОВАНО:
Найдите ниже функцию, которую я назначил для отправки события:
$('#form'+formnum).submit( function(e) {
e.preventDefault(e);
var data = {};
//Gathering the Data
$.each(this.elements, function(i, v){
var input = $(v);
data[input.attr("id")] = input.val();
//delete data[button.attr("id")]; <-- cant' figure it out
//removeData[submit] <-- cant' figure it out
}); // end of $.each
var output =JSON.stringify(data);
$('#showurl').text(output);
}); //end of 'save' button function
JSFIDDLE: jsfiddle.
:checked
проверяется дважды? Если вы посмотрите еще раз, то увидите, что на самом деле у флажков есть идентификатор, но нет имени, поэтомуattr("id")
работает, аattr("name")
— нет. 30.01.2014:checkbox
должна определить, является ли это флажком или нет, а проверка:checked
должна определить, установлен он или нет. Если бы вы сделали только одну проверку, вы бы обработали неотмеченные флажки как другие элементы, и они все равно оказались бы в объекте данных. Поскольку код должен обрабатывать больше, чем просто флажки, необходимы обе проверки. 30.01.2014$.post()
или$.ajax()
пришли как часть процесса тюрьмы, прежде чем принимать значения для входа на мой сервер для хранения базы данных. 01.02.2014