使用 Cordova 2.5.0,我使用以下函数获取<input>
HTML 页面中的所有元素。
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 文本字段。但是,如果可能的话,我也想设置复选框等的值,我有点希望.val(value)
能做到这一点,毕竟,我也可以用 检索元素的值.val()
,甚至可以从其他元素中检索,比如一个复选框。我宁愿不检查我想要添加内容的每个元素,并根据元素类型,使用正确的 jQuery 方法来设置元素的值。
有什么方法或方法可以实现这一目标?
(澄清一点:)addContentToElement("checkbox3", "on");
不起作用,虽然我从元素中检索on
,.val()
但addContentToElement("textfield1", "some text")
确实如此。而且我知道我可以用.prop('checked', true)
, 或来做到这一点.attr('checked', true)
,但是既然我可以用 来获得价值.val()
,为什么不设置呢?