使用Javascript和jquery我想编写代码执行以下操作:当用户填写html表单时,将使用用户提供的属性自动创建新对象。我有一个构造函数
function object (prop1, prop2, prop3) {
this.prop1 = prop1;
this.prop2 = prop2;
this.prop3 = prop3;
}
我正在使用jquery val()获取用户输入,如下所示:
object.prop1 = $('input[name = "input1"]').val();
object.prop2 = $('input[name = "input2"]').val();
object.prop2 = $('input[name = "input3"]').val();
我误解的是我认为在构造函数和用户输入之间。如果我想创建一个新对象,我写
apple = new object (prop1, prop2, prop3);
我希望每次用户填写表单时代码都会自动创建一个新对象。我尝试用for循环做但我没有成功。我是一个初学者,所以我想我错过了一些非常基础的东西。有什么建议吗?
答案 0 :(得分:1)
不需要构造函数
var obj = {};
object.prop1 = $('input[name = "input1"]').val();
object.prop2 = $('input[name = "input2"]').val();
object.prop2 = $('input[name = "input3"]').val();
//Use obj for further processing
答案 1 :(得分:1)
使用jQuery将onsubmit事件绑定到表单。
$("[name='FORM_NAME']").submit(function() {
var newObj = new object();
newObj.prop1 = $('input[name = "input1"]').val();
newObj.prop2 = $('input[name = "input2"]').val();
newObj.prop2 = $('input[name = "input3"]').val();
});
不完全确定您想要对该对象执行什么操作,但这会在submit函数的范围内创建它。
答案 2 :(得分:0)
尝试:
var obj = {};
$("input").each(function() {
var name = $(this).attr("name");
obj.name = $(this).val();
});
然后通过:obj.input1
答案 3 :(得分:0)
不确定为什么要这样做,但你可以使用方括号表示法来实现它。
function x(a, b) {
this[a] = a;
this[b] = b;
this.list = function() {
for(var i in this) {
console.log(i+': '+this[i]);
}
}
}
var l = new x('hello', 'world');
l.list();
答案 4 :(得分:0)
JavaScript能够在OOP范例中工作。如果您真正需要的是自定义对象,您可以这样做:
var Apple = function Apple(p1, p2, p3) {
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
};
//...
a = $('input[name = "input1"]').val();
b = $('input[name = "input2"]').val();
c = $('input[name = "input3"]').val();
var obj = new Apple(a,b,c);