簡體   English   中英

使用用戶定義的屬性創建新的JavaScript對象

[英]Create new javascript objects with user defined properties

我要使用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循環來完成此操作,但未成功。 我是一個初學者,所以我想這里缺少一些非常基本的東西。 有什么建議嗎?

不需要構造函數

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

使用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函數的范圍內創建它。

嘗試:

var obj = {};

$("input").each(function() {
   var name = $(this).attr("name");
   obj.name = $(this).val();
});

然后通過以下obj.input1訪問: obj.input1

不知道為什么要這樣做,但是可以使用方括號表示法來實現。

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();

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM