У меня есть форма, которая проверяет с помощью плагина jQuery: Validation, v1.9.0. Проверка также выполняет удаленные вызовы серверного сценария (Coldfusion) для проверки имен пользователей, адресов электронной почты и т. Д.
Моя проблема заключается в следующем:
В процессе удаленной проверки, бывают моменты, когда новые поля формы будут определены и установлены через серверный скрипт, который необходимо вернуть в форму вызова, чтобы их можно было передать на страницу действия формы.
Как вы заметите в моих фрагментах кода ниже, мне приходится проходить эти значения полей формы на каждом этапе процесса (т. Е. Создавать структуру результата, выбирать их в обработчике успеха и т. Д.), Который и утомительно, и подвержено ошибкам, так как форма может измениться в будущем.
Есть ли способ, который я могу использовать, который просто позволит мне "глобально" установить эти значения полей формы, через которые моя вызывающая форма / страница действия может получить после проверки формы?
СНИПЕТТ ВАЛИДАЦИИ JQUERY:
validator = $('#cartDownload_form').validate({
submitHandler: function(form) {
// make submit button disabled
$('#submit_button').attr('disabled', 'disabled');
// show modal dialog about submittal process..
var processing_dialog = ShowDialog("Processing Order...", "<p>Please wait while we process your order...</p>", false);
// prepare Options Object
var options = {
url: "/products/val_cartDownload_remote.cfm",
dataType: 'json',
type: "POST",
success: function(data) {
if(data.ERRORMESSAGELIST.length == 0) {
// no errors...
// set return form field values needed for action page
$('#verified').val(data.VERIFIED);
$('#dlurl').val(data.DLURL);
$('#dllocation').val(data.DLLOCATION);
$('#itemname').val(data.ITEMNAME);
$('#itemtease').val(data.ITEMTEASE);
$('#itemimage').val(data.ITEMIMAGE);
$('#itemimage_border').val(data.ITEMIMAGE_BORDER);
$('#itemimage_alt').val(data.ITEMIMAGE_ALT);
$('#itemimage_title').val(data.ITEMIMAGE_TITLE);
$('#itemthumb').val(data.ITEMTHUMB);
$('#itemthumb_border').val(data.ITEMTHUMB_BORDER);
$('#itemthumb_alt').val(data.ITEMTHUMB_ALT);
$('#itemthumb_title').val(data.ITEMTHUMB_TITLE);
$('#itempubnotes').val(data.ITEMPUBNOTES);
$('#itemurl_size').val(data.ITEMURL_SIZE);
$('#first_name').val(data.FIRST_NAME);
// submit the form
$('#cartDownload_form')[0].submit();
return true;
} else {
// an error occurred...
};
$(form).ajaxSubmit(options);
return false;
}
ПУЛЬТ ДИСТАНЦИОННОЙ ВАЛИДАЦИИ (это новые поля формы и значения, не входящие в форму вызова):
<cfset variables.result_struct = {
errorfieldlist = listtoarray(form.errorfieldlist),
errormessagelist = listtoarray(form.errormessagelist, form.RS),
verified = form.verified,
dlurl = form.dlurl,
dllocation = form.dllocation,
itemname = form.itemname,
itemtease = form.itemtease,
itemimage = form.itemimage,
itemimage_border = form.itemimage_border,
itemimage_alt = form.itemimage_alt,
itemimage_title = form.itemimage_title,
itemthumb = form.itemthumb,
itemthumb_border = form.itemthumb_border,
itemthumb_alt = form.itemthumb_alt,
itemthumb_title = form.itemthumb_title,
itempubnotes = form.itempubnotes,
itemurl_size = form.itemurl_size,
first_name = form.first_name
}>
<cfoutput>#serializeJSON(result_struct)#</cfoutput>
Так что я пытаюсь уйти от необходимости установить все эти значения полей формы вручную в нескольких местах, чтобы просто вернуть их на мою страницу вызова / страницу действий.
Я, вероятно, совершаю простую ошибку новичка и, похоже, не могу найти ответ.
Спасибо.