使用相同的jQuery函数设置不同html元素类型的值
Set value on different html element types with same jQuery function
使用Cordova 2.5.0,我使用以下函数来获取HTML页面内的所有<input>
元素。
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");
不起作用,虽然我从元素中检索.val()
中的on
,但addContentToElement("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发送给函数来查找复选框的输入
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素