-1

knockout을 사용하여 데이터 바인딩 된 텍스트 입력에 jasny 부트 스트랩 입력 마스크를 적용하려고합니다. 그러나 입력 상자를 클릭하기 전까지는 데이터 마스크가 표시되지 않습니다. 이유가 확실하지 않습니다. 나는 입력 마스크를 즉시 보여주고 싶습니다. 여기는 바이올린입니다. http://jsfiddle.net/LkqTU/31938/녹아웃로드에 jasny 입력 마스크 적용

여기에 HTML

<div class="container"> 
    <table class="table table-condensed table-hover"> 
    <thead> 
     <tr> 
     <th>First Name</th> 
     <th>Last Name</th> 
     <th>Phone</th> 
     </tr> 
    </thead> 
    <tbody data-bind='foreach: employees'> 
     <tr> 
     <td data-bind='text: firstName'></td> 
     <td data-bind='text: lastName'></td> 
     <td> 
      <input type="text" class="form-control" data-bind="value: phone" data-mask="999-999-9999"> 
     </td> 
     </tr> 
    </tbody> 
    </table> 
</div> 

이며, 여기에 자바 스크립트입니다. 당신의 녹아웃 바인딩 적용한 후

function employee(firstName, lastName, phone) { 
    this.firstName = ko.observable(firstName); 
    this.lastName = ko.observable(lastName); 
    this.phone = ko.observable(phone); 

} 

function model() { 
    var self = this; 
    this.employees = ko.observableArray(""); 
} 

var mymodel = new model(); 

$(document).ready(function() { 
    loaddata(); 
    ko.applyBindings(mymodel); 
}); 

function loaddata() { 
    mymodel.employees.push(new employee("Bob", "Jones", "7174569876")); 
    mymodel.employees.push(new employee("Mary", "Smith", "3457892435")); 
    mymodel.employees.push(new employee("Greg", "Black", "3557689800")); 
} 

답변

1

, 문서로드의 입력 마스크를 초기화하십시오 :

$(document).ready(function() { 
    loaddata(); 
    ko.applyBindings(mymodel); 
    $('.form-control').inputmask({ 
     mask: '999-999-9999' 
    }) 
}); 

는 데이터 마스크뿐만 아니라 속성을 제거해야합니다.

JS Fiddle example