Javascript 使用相同的jQuery函数设置不同html元素类型的值
使用Cordova 2.5.0,我使用以下函数获取HTML页面中的所有Javascript 使用相同的jQuery函数设置不同html元素类型的值,javascript,android,jquery,html,Javascript,Android,Jquery,Html,使用Cordova 2.5.0,我使用以下函数获取HTML页面中的所有元素 function getInput() { var formElements = new Object(); $("form :input").each(function(){ formElements[this.name] = $(this).val(); //that's this line }); return formElements; } 实际上,我没有“获取”元素,而是
元素
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()
在insertResults(JS):{“checkbox3”:“,“textfieldmulti1”:“一些文本”,“textfield1”:“更多文本”,“boxed1”:“更多文本”,“checkbox1”:“开”,“checkbox2”:“开”}
上面的代码对于html文本字段非常有效。但是,如果可能的话,我也希望设置复选框等的值,我有点希望.val(value)
能够做到这一点,毕竟,我可以使用.val()
检索元素的值,甚至可以从其他元素(如复选框)检索。我不希望检查我想要添加内容的每个元素,而是根据元素类型,使用正确的jQuery方法来设置元素的值
有什么方法可以达到这个目的吗
(再澄清一点:)addContentToElement(“checkbox3”,“on”)代码>不起作用,尽管我从元素的.val()
中检索,但添加contentToElement(“textfield1”,“some text”)
起作用。我知道我可以用.prop('checked',true)
,或者.attr('checked',true)
,但是既然我可以用.val()
获得值,为什么不设置它呢?复选框和无线框不能使用“val()”进行检查,因为它们与文本框不同。当您更改“checked”属性以将表单数据发送到服务器、网站等时,它们就会起作用。仅当要更改值(值属性)时,才能使用val()
所以,如果我理解正确,您希望在“addContentToElement”函数获取“on”值时更改复选框。我更改了您的代码,您可以使用下面的代码
function addContentToElement(elementname, valuetoset) {
$(function() {
if (valuetoset === "on") {
$("input[name='" +elementname +"']").attr('checked', true);
} else {
$("input[name='" +elementname +"']").val(valuetoset);
}
});
}
但是您应该将type发送到函数,以查找复选框中的输入。因此,简短的回答是:“不,您不能,您应该处理所有不同的元素类型(使用switch语句或其他方法)”?