2011-08-31 27 views
0

我试图找出如何复制Unique Name的一个元素的ID绑定的功能结合(获得pretty validation工作)的UniqueID在淘汰赛

ko.bindingHandlers.uniqueID = { 
    'init': function (element, valueAccessor) { 
     if (valueAccessor()) { 
      element.ID = "ko_unique_" + (++ko.bindingHandlers['uniqueName'].currentIndex); 
     } 
    } 
}; 

回答

4

为uniqueName淘汰赛源

ko.bindingHandlers['uniqueName'] = { 
    'init': function (element, valueAccessor) { 
     if (valueAccessor()) { 
      element.name = "ko_unique_" + (++ko.bindingHandlers['uniqueName'].currentIndex); 

      // Workaround IE 6 issue - http://www.matts411.com/post/setting_the_name_attribute_in_ie_dom/ 
      if (ko.utils.isIe6) 
       element.mergeAttributes(document.createElement("<input name='" + element.name + "'/>"), false); 
     } 
    } 
}; 
ko.bindingHandlers['uniqueName'].currentIndex = 0; 

所以我认为你应该有这个(注ID应该是ID,IE6的东西去掉,并uniqueName改为UNIQUEID)

ko.bindingHandlers['uniqueId'] = { 
    'init': function (element, valueAccessor) { 
     if (valueAccessor()) { 
      element.id = "ko_unique_" + (++ko.bindingHandlers['uniqueId'].currentIndex);   
     } 
    } 
}; 
ko.bindingHandlers['uniqueId'].currentIndex = 0;