Используя Cordova 2.5.0, я использую следующую функцию go, чтобы получить все <input>
элементов на странице HTML.Задайте значение для разных типов элементов html с помощью той же функции jQuery
function getInput() {
var formElements = new Object();
$("form :input").each(function(){
formElements[this.name] = $(this).val(); //that's this line
});
return formElements;
}
На самом деле, я не «получить» элементов, а значения, как вы можете видеть в четвертой строке сниппета.
Теперь я пытаюсь установить значения позже в приложении.
function insertResults(data) { //data is a json string
console.log("in insertResults (JS): " + data);
var jso = JSON.parse(data);
for (var key in jso) {
addContentToElement(key, jso[key]);
}
}
function addContentToElement(elementname, valuetoset) {
$(function() {
$("input[name='" +elementname +"']").val(valuetoset);
});
}
В console.log()
печатает по этому поводу: in insertResults (JS): {"checkbox3":"","textfieldmulti1":"some text","textfield1":"some more text","boxed1":"even more text","checkbox1":"on","checkbox2":"on"}
И выше код работает просто отлично для HTML текстовых полей. Однако, если это возможно, я также хотел бы установить значение для checkboxes et cetera, и я ожидал, что .val(value)
будет делать трюк, в конце концов, я могу получить значение элемента также с помощью .val()
, даже из других элементов , как флажок. Я бы предпочел не проверять каждый элемент, в который я хочу добавить контент, и в соответствии с типом элемента использовать правильный метод jQuery для установки значения элемента.
Любой способ или способ достижения этого?
(Для уточнения чуть больше :) addContentToElement("checkbox3", "on");
не работает, хотя я получить on
из .val()
от элемента, но addContentToElement("textfield1", "some text")
делает. И я знаю, что могу сделать это с .prop('checked', true)
, или .attr('checked', true)
, но так как я могу получить значение с .val()
, почему бы не установить его?
Итак, короткий ответ: «Нет, вы не можете, вы должны обрабатывать все типы элементов (с помощью оператора switch или что-то еще)»? – stealthjong
Да, точно :) –