2013-04-14 22 views
0

나는 동적으로 추가 된 입력, 텍스트 및 선택 요소가있는 양식이 있습니다.입력 값을 변경하는 방법은 무엇입니까?

양식의 ID는 #user-form이며이 양식에 표시되는 input/select/text 요소의 값을 변경해야합니다.

양식 항목 중 하나가 페이지로드에 숨겨져 있는데, 그 이유는 내 선택에 input:hidden을 포함 시켰기 때문입니다. ,

<input id="slider-coll" class="enq-form-input form-text" type="text" maxlength="128" size="10" value="" name="slider_coll"> 

내 현재 코드, jQuery를 사용하여 다음과 같습니다 :

하나 개의 요소에 대한 HTML 출력의 예는 다음과 같다 내가 전역 변수로 catchValue & feetValue을 정의

sliderForm.find('#user-form').find('.enq-form-input, .enq-form-select, input:hidden').change(function() { 
    inputValue = $(this).val(); 
    console.log(inputValue); 
    $(this).val(inputValue); 

    if (catchValue && feetValue) { 
     calculateAmounts(catchValue, feetValue); 
    } 
}); 

변경 기능 외부. 이 양식은 jQuery 슬라이더 플러그인도 사용합니다.

Console.log은 올바른 값을 반환하지만 업데이트 할 실제 입력 값을 가져올 수 없습니다.

calculateAmounts은 값이 변경 될 때마다 실행해야하는 아약스 함수입니다.

는 지금 catchValue & feetValueconsole.log 올바른 값을 반환하는 경우에도, false를 반환한다.

나는 쉽게 뭔가를 놓치고 있는데, 누구든지이 문제를 해결하는 방법을 알고 있습니까?

* 당 Nerdwood 요청 * *

calculateAmounts 아래이지만,이 문제가되지 않습니다. 그것은 하나의 강제 변경에 대해 테스트 할 때 작동합니다. 내 문제는 입력 값이 업데이트되지 않는다는 것입니다.

function calculateAmounts(catchValue, feetValue) { 
    jQuery.ajax({ 
    type: 'POST', 
    url: '/calculateAmounts/ajax', 
    dataType: 'json', 
    success: ajaxCalcAmountsCompleted, 
     data: { 
     catchValue:catchValue, 
     feetValue:feetValue 
     } 
    }); 
} 
+0

입력 한 내용에 이미 포함 된 값과 동일한 값이 업데이트되지 않습니다. – Uby

+0

'calculateAmounts()'함수의 내용을 보여주십시오. – Nerdwood

+0

Uby - 나는 당신이 올바른 길에 있다고 생각합니다. 내 계획에 어리석은 계획 일 수 있습니다.먼저 변경 함수 외부에서 전역 변수로 catchValue 및 feetValue 변수를 만듭니다. 변경 기능 내에서 변수 값을 새 값으로 변경하지 않습니다. – bletch

답변

0
inputValue = $(this).val(); 
console.log(inputValue); 
$(this).val(inputValue); 

은 왜 자체에 대한 입력 값을 변경?

또한 catchValuefeetValue은 거짓이므로 calculateAmounts은 호출되지 않습니다.

또한, sliderForm.find('#user-form')는 ID가 문서

당신이 입력 '값을 변경하려고하는 말에서 고유하므로 $(#user-form)이 충분하다, 자체 내에서 양식을 찾습니다, 아직 .change라는 이벤트 때마다 값이 변경됩니다.

이런 뜻입니까?

$('#user-form'). 
    find('.enq-form-input, .enq-form-select, input:hidden'). 
    each(function() { 
     inputValue = $(this).val(); 

     $(this).val("new text"); //whatever new value for the input 

     //do something with inputValue .. 

     if (catchValue && feetValue) { 
      calculateAmounts(catchValue, feetValue); 
     } 
    }); 
+0

주된 문제는 내 이해의 부족이라고 생각합니다. 입력 필드의 값이 변경 될 때마다 나는 ajax 함수를 호출해야하며이 함수는 변경된 값을 보유해야하는 두 개의 매개 변수를 취합니다. 변경 기능을 사용하여이 작업을 완료해야한다고 생각했기 때문에 (값이 변경 될 때마다 해고되도록) – bletch

관련 문제