使用用户定义的属性创建新的javascript对象

时间:2013-03-15 13:03:43

标签: javascript jquery

使用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循环做但我没有成功。我是一个初学者,所以我想我错过了一些非常基础的东西。有什么建议吗?

5 个答案:

答案 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);