2011-09-06 4 views
0

처음에는 이것이 아주 쉬워야한다고 생각했습니다. 값을 얻으려면 $ (selector) .val()을 사용하십시오. 그러나 나는 많은 어려움을 겪고있다.jQuery를 사용하여 HTML 요소의 값을 읽는 방법에 대한 질문

예를 들어 설명해주십시오.

두 개의 텍스트 상자가 있으며 jQuery의 AutoComplete 플러그인에 연결되어 있다고 가정합니다.

첫 번째 텍스트 상자를 클릭하면 성공했을 때 반환 된 데이터를 클릭 된 텍스트 상자에 바인딩하고 hiddenField는 반환 된 ID를 보관하는 데 사용됩니다.

전체 진행이 쉽고, 아약스 전화를 걸고 성공합니다. 이제 hiddenField에 반환 값이 있습니다.

두 번째 자동 완성 이벤트를 만들 때이 이벤트에 대해 숨겨진 상자에서 값을 읽으려고합니다.

이번에는 실패했습니다. 아약스 호출 때문이 아니라 값이 null이기 때문에 ...

혼란 스럽습니다. 왜냐하면 hiddenField에는 약간의 가치가 있기 때문입니다. 그러나 왜 나는 그것을 쉽게 읽을 수 없습니까? 여기

내가

function DepartCityAutoComplete() { 
$("#txtDeparture").autocomplete({ 
    minLength: 3, 
    source: 
      function (request, response) { 
       $.ajax({ 
        type: "POST", 
        url: "/AjaxDataServices.asmx/DepartCityAutoComplete", 
        data: '{"keyword":"' + request.term + '"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (data) { 
         response($.map(data.d, function (item) { 
          return { value: item.CityName + ", " + item.StateShortName, id: item.CityID } 
         })) 
        }, 
        error: function() { 
         alert("An unexpected error has occurred during processing."); 
        } 
       }); 
      }, 
    select: function (event, ui) { 
     $("#txtDeparture").val(ui.item.value); 
     $("#hiddenDepartCityID").val(ui.item.id); 
    } 
}); 

}

function DestCityAutoComplete() { 

var departCityID = $("hiddenDepartCityID").val(); 

$("#txtDestination").autocomplete({ 
    minLength: 3, 
    source: 
      function (request, response) { 
       $.ajax({ 
        type: "POST", 
        url: "/AjaxDataServices.asmx/DestCityAutoComplete", 
        data: '{"keyword":"' + request.term + '","id":"' + departCityID + '"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (data) { 
         response($.map(data.d, function (item) { 
          return { value: item.CityName + ", " + item.StateShortName, id: item.CityID } 
         })) 
        }, 
        error: function() { 
         alert("An unexpected error has occurred during processing."); 
        } 
       }); 
      }, 
    select: function (event, ui) { 
     $("#txtDestination").val(ui.item.value); 
     $("#hiddenReturnCityID").val(ui.item.id); 
    } 
}); 

가}

사람이 나에게 어떤 제안을 줄 수있는 일부 코드인가? 고맙습니다. 여기

내 생각 엔

이 때문에 $ (문서) .ready이다 (함수()

나는 다음과 같은 코드가 있습니다

$(document).ready(function() { 
DepartCityAutoComplete(); 
DestCityAutoComplete(); 

을})이다;

이렇게 두 개의 함수는 페이지가로드 될 때 삽입됩니다. 첫 번째 autoComplete 함수가 hiddenField에 값을 할당하더라도 웹 브라우저는이를 인식하지 못합니다. 내가 잘못하면 나를 바로 잡으십시오. 감사합니다

답변

0
var departCityID = $("hiddenDepartCityID").val(); 

이 아닌이

var departCityID = $("#hiddenDepartCityID").val(); 
+0

음 ...... 내가 바보 같은 실수를 할 수 있어야 ... 감사합니다. 나는 그것을 대답으로 표시 할 것이다. – HorseKing

+0

@ user361022 문제가 해결되어 기쁩니다. 나는 이것이 가장 흔한 실수라고 믿는다. 두 번째 것은 빠져있다. " :) – mkk

관련 문제