Я действительно нуждаюсь в этом, потому что я не могу вручную набирать множество параметров для панели администратора. Поэтому мне нужен быстрый способ получить каждый вход/выбор и добавить значение, как я хочу.
Здесь образец looong для одного поля опции:
$("select[name=big_proceed]").val("true");
$("select[name=proceed_action]").val("");
$("input[name=choice_premium]").val("Premium <span>Code</span>");
$("input[name=big_proceed_pts]").val("");
$("#settings_proceed input, #settings_proceed select").each(function () {
databaseData($(this));
});
Я думал, что что-то подобное может работать, но, видимо, я ошибся. Здесь образец:
$("#settings_proceed :input").each(function () {
$(this)
.eq(0).val("true")
.eq(1).val("")
.eq(2).val("Premium <span>Code</span>")
.eq(3).val("");
databaseData($(this));
});
Любые предложения для меня?
.eq(index): Уменьшить набор согласованных элементов до единицы по указанному индексу.
Следовательно, ваш второй пример не работает так, как предполагалось, потому что $(this)
только одному элементу (это намерение позади .each()
). Вы можете переписать код так:
var values = ["true", "", "Premium <span>Code</span>", ""];
$("#settings_proceed :input").each(function(i){
$(this).val(values[i]);
databaseData($(this));
});
Однако этот подход делает код трудным для чтения и подвержен ошибкам, поскольку он принимает фиксированный порядок элементов HTML (что, если вы измените порядок полей ввода, но забудьте настроить JS соответственно?). Поэтому вам действительно нужно "вручную" добавлять идентификаторы к вашим элементам ввода и выбирать их по их идентификатору, а не по индексу.
Как заметил @David Thomas, какой-то образец HTML был бы здесь очень полезен, но, не зная никаких подробностей о том, что вы пытаетесь сделать, я бы предложил следующее:
var values = {
big_proceed: "true",
proceed_action: "",
choice_premium: "Premium <span>Code</span>",
big_proceed_pts: ""
};
$.each(values, function(key, value){
$("#settings_proceed").find("[name='"+key+"']").val(value);
databaseData($(this));
});
Таким образом, вы можете аккуратно определить все значения в одном объекте и позволить jQuery безопасно делать все остальное.