Javascript 使用jQuery/JS,我可以;领带“;一个JS对象';属性直接转换为表单输入元素的值?

Javascript 使用jQuery/JS,我可以;领带“;一个JS对象';属性直接转换为表单输入元素的值?,javascript,jquery,forms,oop,pass-by-reference,Javascript,Jquery,Forms,Oop,Pass By Reference,我正在为我所在城市的一家宠物寄宿公司建立一个在线预订系统,我遇到了一个难题,那就是如何有效地实现这一特定功能 用户进程的快速要点 给出了一些初步信息(客户信息、宠物信息等) 用户选择2个日期;入住和退房日 该程序计算客户机停留的天数,并将每天放入类“day”的构造函数中。A.每天生成块并显示给用户。还值得注意的是,所有Day对象都存储在一个数组中,该数组随后包含在mama类“ReservationData”中……除Day数组外,该类还包含一些与保留本身有关的元数据 无论如何,我的问题是,一旦“d

我正在为我所在城市的一家宠物寄宿公司建立一个在线预订系统,我遇到了一个难题,那就是如何有效地实现这一特定功能

用户进程的快速要点

  • 给出了一些初步信息(客户信息、宠物信息等)
  • 用户选择2个日期;入住和退房日
  • 该程序计算客户机停留的天数,并将每天放入类“day”的构造函数中。A.每天生成块并显示给用户。还值得注意的是,所有Day对象都存储在一个数组中,该数组随后包含在mama类“ReservationData”中……除Day数组外,该类还包含一些与保留本身有关的元数据
  • 无论如何,我的问题是,一旦“dayBlocks”被列出并显示给用户,用户就必须能够在特定的一天去检查他们想要为宠物提供的个人“额外服务”


    因此,我将其分解为{ReservationData}假设您的复选框的名称对应于您的dayExtras对象中的键,类似于这样的操作

    //Day Object/Class
    function day(_date, _daynum) {
        this.date = new Date(_date);
        this.dayNum = _daynum;
        this.dayExtras = {
            'YH': false,  //<--- How can I directly manipulate
            'PP': false,  //<--- all of these guys via user-control
            'EE': false,  //<--- of corresponding/assigned 
            'ST': false,  //<--- checkboxes?
            'PT': false,
            'TT15': false,
            'TT30': false,
            'TT45': false,
            'DC': false   //--- Or can I? :/        
        };
    
        console.log("Day object created with date of " + day.date + " and day-number of "+day.dayNum+".");
    
        this.getDayNum = function() { return this.dayNum; }
        this.getDayDate = function() { return this.date; }
        this.setDayExtras = function (key,val) {
          if(key in this.dayExtras){
            this.dayExtras[key] = val;
          }
        }
    }
    
    var myDay = new day(null,null);
    
    $(document).on('change','#myForm input[type="checkbox"]', function () {
      myDay.setDayExtras(this.name,this.checked);
    });
    
    //日对象/类
    功能日(_date,_daynum){
    this.date=新日期(_日期);
    this.dayNum=\u dayNum;
    this.dayExtras={
    
    “YH”:错,//成功了,谢谢你们给我指出了正确的方向,伙计们

    function saveExtra(me) {
        var extraName = me.attr('name');
        var extraVal = me.val();
        (reservationData[extraName]).dayExtras[extraVal] = me.prop('checked');
        for (key in reservationData) {
            (reservationData[key]).dump(); //Day data-dump method.
        }
    }
    
    this.generateExtrasGrid = function() {
        var fieldName = "day" + this.dayNum + "";
        var exGrid = "";
        exGrid += "<form class='extrasGrid' id='" + this.dayNum + "'>";
        exGrid += "<input type='checkbox' class='extra' name='" + fieldName + "' value='YH' onclick='saveExtra($(this))' />";............
        exGrid += "</form>";
        return exGrid;
    }​
    
    函数saveExtra(me){
    var extraName=me.attr('name');
    var extral=me.val();
    (reservationData[extraName]).dayExtras[extraVal]=me.prop('checked');
    for(输入reservationData){
    (reservationData[key]).dump();//日数据转储方法。
    }
    }
    this.generateExtrasGrid=函数(){
    var fieldName=“day”+this.dayNum+”;
    var exGrid=“”;
    exGrid+=“”;
    exGrid+=“”;。。。。。。。。。。。。
    exGrid+=“”;
    返回exGrid;
    }​
    
    欢迎访问该站点!您最好的选择可能是根据输入类型和所需行为以编程方式设置、和/或事件处理程序。是的,答案是在每个输入元素的事件处理程序中处理此问题。与淘汰框架类似,您可以使用jQuery,它允许您在DOM元素上存储任意数据s(例如,要更改的额外天数和天数,以便您可以找到相应的
    ,并更改特定额外天数的值)。然后跟进问题;由于用户输入决定天数,因此我必须动态创建复选框列表。这是否就是为什么没有$('checkbox')。在('click','change',等…)你在工作吗?
    function saveExtra(me) {
        var extraName = me.attr('name');
        var extraVal = me.val();
        (reservationData[extraName]).dayExtras[extraVal] = me.prop('checked');
        for (key in reservationData) {
            (reservationData[key]).dump(); //Day data-dump method.
        }
    }
    
    this.generateExtrasGrid = function() {
        var fieldName = "day" + this.dayNum + "";
        var exGrid = "";
        exGrid += "<form class='extrasGrid' id='" + this.dayNum + "'>";
        exGrid += "<input type='checkbox' class='extra' name='" + fieldName + "' value='YH' onclick='saveExtra($(this))' />";............
        exGrid += "</form>";
        return exGrid;
    }​