я следующие значения из формы осуществляется доступом с помощью JQuery с помощью .val():JQuery .val() не обновляется на
var un0 = $("input.e0").val();
var un1 = $("input.e1").val();
var un2 = $("input.e2").val();
var un3 = $("textarea.e3").val();
исходных значений в тех из элементов, которые были добавлены ранее по другой скрипт, который циклически меняет значения из XML-данных AJAX.
Проблема заключается в том, что, когда я изменить значение в форме (т.е. переписать их) и отправить форму, чтобы обновить свою БД, то исходных значения, а не обновленных значений отправляются. Это как если бы новые значения игнорировались .val(). Если я проведу то, что отправляется из формы с предупреждением (un0); новое редактируемое значение не извлекается, и я вижу, что используется оригинал.
Примечание. Это не относится к правилу textarea (un3), который работает правильно и обновляет новое значение при редактировании.
Любые идеи, почему jQuery не использует новый .val() входов?
Edited с большим количеством источников:
Значения установлены в предыдущем блоке кода после вызова XML из БД. Это выполняется при нажатии элемента.
// Construct the output info (for both read and write)
for (var i = 0; i < field_count; i++){
data = eval("r" + i);
$(".r"+i).replaceWith("<span class=\"r" + i + "\">" + data + "</span>");
$(".e"+i).attr("value", data);
}
Затем отображается версия только для чтения. У этого была ссылка, которая отключает версию только для чтения и форму с теми же значениями в ней.
Затем на JQuery представить вызывает функцию перезаписи:
$(".overwrite").click(function() {
// Other conditionals, then ...
if (category=="3"){
// phone
var un0 = $("input.e0").attr('value');
var un1 = $("input.e1").attr('value');
var un2 = $("input.e2").attr('value');
var un3 = $("textarea.e3").val();
// Encode each using myKey
e0 = Passpack.encode("AES",un0,myKey);
e1 = Passpack.encode("AES",un1,myKey);
e2 = Passpack.encode("AES",un2,myKey);
e3 = Passpack.encode("AES",un3,myKey);
queryString = 'user_id=' + user + '&cat_name=' + cat_name + '&id=' + item_no + '&v1='+ e0 + '&v2=' + e1 + '&v3=' + e2 + '&v4=' + e3;
}
// Other conditionals, then …
// Call edit.php to make update on db
$.ajax({
type: "POST",
url: "app/edit.php",
data: queryString,
success: function() {
$("#edit_" + cat_name).hide();
$("#delete_success").hide();
$("#right_read").show();
$("#write_success").show();
$("#read_" + cat_name).show();
get_list(0,category);
read_db(category,item_no);
}
});
time_out();
return false;
});
Значения в форме, после редактирования не обновляются и представление использует исходные значения, установленные выше кодом.
В какой момент выполняется ввод кода, который вы вставляете? –
Вы уверены, что обновляете переменные? Будет хорошо, если вы разместите полный источник, который используете. – kgiannakakis
Переменные, e0, e1 и т. Д., Сначала устанавливаются, покупают другой блок кода. (Значения только для чтения также устанавливаются с использованием r0, r1 и т. Д.) Затем сценарий переключает версию данных только для чтения в форму, которая имеет эти значения в полях. (jQuery скрывает один и показывает другой.) Затем форма может быть обновлена путем наложения. Существует ссылка для обновления, которая запускает функцию для обновления значений и отправки сценария PHP для обновления БД (также AJAX). Приведенный выше код является частью этой функции, которая вызывается при нажатии ссылки обновления. – Mark