2016-02-05 29 views
0

我想将字段名schedtimein更改为schedtimein加上x的值..例如schedtimein1,schedtimein2等...我该怎么做,对不起,我在这里新所以。如何在javascript中更改字段的名称

$(document).ready(function() { 
var x = 1; 


    $('#meetingForm').formValidation({ 
     framework: 'bootstrap', 
     icon: { 
      valid: 'glyphicon glyphicon-ok', 
      invalid: 'glyphicon glyphicon-remove', 
      validating: 'glyphicon glyphicon-refresh' 
     }, 
     fields: { 
      schedtimein: { 
       verbose: false, 
       validators: { 
        notEmpty: { 
         message: 'The start time is required' 
        }, 

        callback: { 
         message: 'The start time must be earlier then the end one', 
         callback: function(value, validator, $field) { 
          var schedtimeout = validator.getFieldElements('schedtimeout' + x).val(); 
          if (schedtimeout === '') { 
           return true; 
          } 
          var startHour = parseInt(value.split(':')[0], 10), 
           startMinutes = parseInt(value.split(':')[1], 10), 
           endHour  = parseInt(schedtimeout.split(':')[0], 10), 
           endMinutes = parseInt(schedtimeout.split(':')[1], 10); 

          if (startHour < endHour || (startHour == endHour && startMinutes < endMinutes)) { 
           // The end time is also valid 
           // So, we need to update its status 
           validator.updateStatus('schedtimeout' + x, validator.STATUS_VALID, 'callback'); 
           return true; 
          } 

          return false; 
         } 
        } 
       } 
      }, 
      schedtimeout: { 
       verbose: false, 
       validators: { 
        notEmpty: { 
         message: 'The end time is required' 
        }, 

        callback: { 
         message: 'The end time must be later then the start one', 
         callback: function(value, validator, $field) { 
          var schedtimein = validator.getFieldElements('schedtimein' + x).val(); 
          if (schedtimein == '') { 
           return true; 
          } 
          var startHour = parseInt(schedtimein.split(':')[0], 10), 
           startMinutes = parseInt(schedtimein.split(':')[1], 10), 
           endHour  = parseInt(value.split(':')[0], 10), 
           endMinutes = parseInt(value.split(':')[1], 10); 

          if (endHour > startHour || (endHour == startHour && endMinutes > startMinutes)) { 
           // The start time is also valid 
           // So, we need to update its status 
           validator.updateStatus('schedtimein' + x, validator.STATUS_VALID, 'callback'); 
           return true; 
          } 

          return false; 
         } 
        } 
       } 
      } 
     } 
    }); 
}); 

如何解决这个问题?如何将字段schedtimein的名称更改为schedtimein加上x的值,如schedtimein1,schedtimein2和...

+0

我不能完全理解你的目的。你能让你的代码更客观吗? – Jelly

+0

感谢您的答复先生,我有一个名称为schedtimein1,schedtimein2的多输入标签,等等..我在while语句中运行JavaScript代码。我想返回一个特定输入标签的值.. – Kram143

+0

@Mohith P。感谢编辑。 – Kram143

回答

0

删除对象文字时,不能定义变量属性名称var obj = {prop: value}。但是你可以定义像这样的对象之后,将它们添加...

var x = 1; 
var fields = { // declare 
    schedtimeout: { ... } 
}; 

fields['schedtimein' + x] = { ... }; // will add schedtimein1 to fields object. 
// ...Add as many as you like with different values of { ... } (different values). 

$('#meetingForm').formValidation({ 
    framework: 'bootstrap', 
    icon: { ... }, 
    fields: fields // now add your final object here. 
}); 

编辑:由于下面的评论者建议,实现您逐步命名的属性,你会刚刚超过他们圈是这样的...

for (; x <= numberOfProps; x++) { 
    fields['schedtimein' + x] = makeMyObjectBasedOnX(x); 
} 

其中makeMyObjectBasedOnX函数根据传递的值x返回一个对象,因此对于您定义的每个新属性都是唯一的。

+0

它看起来像'schedtimein + x'值是相同的 - 除了x的值。我将它封装在一个函数中,然后像这样调用它:fields ['schedtimein'+ x] = getValueOfField(x); –

+0

@puqeko感谢快速回复先生..我会尝试这一点,我会让你知道,如果它的工作..感谢 – Kram143

+0

@VishalBardoloi一个非常有效的观点。感谢您的反馈。我已经将它编辑成答案 - 希望你不介意。 :) – puqeko

相关问题