Я ищу действительно общий способ "заполнить" форму, основанную на строке параметра, используя javascript.
например, если у меня есть эта форма:
<form id="someform">
<select name="option1">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="option2">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
Я хотел бы иметь возможность взять строку параметров следующим образом: option1=2&option2=1
И затем выберите правильные вещи на основе параметров в строке запроса.
У меня есть какое-то уродливое решение, где я просматриваю дочерние элементы формы и проверяю, соответствуют ли они различным ключам, затем устанавливаю значения, но мне это действительно не нравится.
Мне нужен более чистый, универсальный способ сделать это, который будет работать для любой формы (при условии, что строка параметров имеет все правильные ключи).
Я использую библиотеку прототипов javascript, поэтому я буду рад предложениям, которые воспользуются этим.
РЕДАКТИРОВАТЬ: это то, что я до сих пор придумал (используя прототип для Form.getElements(form)
)
function setFormOptions(formId, params) {
params = params.split('&');
params.each(function(pair) {
pair = pair.split('=');
var key = pair[0];
var val = pair[1];
Form.getElements(form).each(function(element) {
if(element.name == key) {
element.value = val;
}
});
});
}
Я чувствую, что все равно может быть быстрее / чище.