var settings = {}; $(".js-gen-settings").each(function(){ var date; if (($(this).attr("type") === "checkbox") || ($(this).attr("type") === "radio")){//if its a checkbox eval("settings."+this.name+" = "+$(this).is(":checked")); }else{ date = $(this).val(); if (date == ""){ eval("settings." + this.name + " = null"); }else{ eval("settings." + this.name + " = '" + date + "'"); } } });
a JSON.stringify версия settings будет отправлена на сервер с помощью ajax.
JSON.stringify
settings
Если вы хотите изменить свойство объекта динамически, вы просто помещаете имя в [ скобках ].
[
]
settings[this.name] = null settings[this.name] = date; settings[this.name] = $(this).is(":checked");
изменение:
eval("settings." + this.name + " = null")
до
settings[this.name] = null;
Я уверен, что вы можете выяснить остальное:)
Здесь, я повторно обработал ваш код:
$( '.js-gen-settings' ).each(function () { if ( $( this ).is( ':checkbox, :radio' ) ) { settings[ this.name ] = this.checked; } else { settings[ this.name ] = this.value ? this.value : null; } });