1

텍스트 상자와 버튼이 있는데 버튼을 클릭하면 텍스트 상자의 값을 함수로 보내고 싶습니다. 알아낼 수없는 것 같습니다. 뷰 모델에서knockout은 입력 값을 함수로 보냅니다.

 Reg:<input type="text" placeholder="Enter Reg" data-bind="text: search" /> 
<button class="btn btn-danger" data-bind="click: function() { GJobs(search) }" >Get Jobs</button> 

기능

self.GJobs = function (search) { 
     GetJobs(search) 
    } 

아약스 호출

function GetJobs(search) { 
     $.ajax({ 
      type: "GET", 
      url: 'api/mechanicphone', 
      data: { reg: search}, 
      dataType: 'json', 
      contentType: 'application/json', 
      success: function (data) { 
       self.Jobs(data); 
      }, 
      error: function (data) { 
       $('#MechMobile').html('<h3>Error in retrieval</h3>'); 
      } 
     }); 
    } 
전달 된 등록 내가 디버깅 가져 오기에 널오고있다

답변

2

이 몇 가지 있습니다 그해야 코드에서 변경 될 수 있습니다.

첫째, value 바인딩 입력 필드에서 값을 반환하기 위해 대신`텍스트 사용해야합니다

:

<input type="text" placeholder="Enter Reg" data-bind="value: search" /> 

그런 다음 이상적으로 당신의 클릭 핸들러가보기 모델, 다음 얻을 수 있습니다에서 함수를 호출해야합니다 관측 가능한 변수 search의 값 이 같은

Reg:<input type="text" placeholder="Enter Reg" data-bind="value: search" /> 
<button class="btn btn-danger" data-bind="click: GJobs" >Get Jobs</button> 

그리고 당신의보기 모델 :

self.GJobs = function() { 
    GetJobs(self.search()); 
} 
self.search = ko.observable(''); 
function GetJobs(searchValue){ 
    // Call web service 
} 
+0

어리석은 실수 전반적으로이 같은 HTML 코드를 업데이트 할 수 있습니다. 건배 – user2790781

관련 문제