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;
}
実際には、スニペットの 4 行目にあるように、要素ではなく値を「取得」します。
今、後でアプリケーションで値を設定しようとしています。
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()