2011-08-06 1 views
0

기본적으로 Codeigniter의 Form_Helper 라이브러리에 대한 MAJOR 제한 사항으로 인해 CI의 양식 도우미로 생성되지 않은 입력 요소의 값을 유지할 수 없습니다.다른 모든 속성을 무시하지 않고 jQuery가 텍스트 입력을 숨겨진 입력 값으로 설정 했습니까?

내 양식 으로 특수 형식의 텍스트 입력 (HH : MM : SS)이 필요하므로 입력 요소를 만들기 위해 jQuery를 사용해야했습니다. 이제는 사용자가 무언가를 잘못 입력하고 유효성 검사가 실패하여 페이지가 다시로드되는 경우 이전에 입력 한 시간 값이 손실된다는 문제가 있습니다.

해결 방법을 만들기 위해 입력 된 시간 값을 고맙게 유지하는 CI의 form_helper를 사용하여 숨겨진 입력을 만들었습니다.

이제는 jQuery 스크립트를 사용하여 숨겨진 입력 값을 복구하고 해당 입력에 값을 전달해야합니다. 시간이 많이 걸릴 수 있습니다 !!

그들 예를 들면의 X 금액이있을 수 있습니다 내 숨겨진 요소

<input type="hidden" value="" name="timetemp0"> 

에 대한 HTML이다. timetemp0, timetemp1, timetemp2 등

그래서 지금 내 요소가 값을 복사 할 내 jQuery 함수입니다. IF 설정되어 있습니다. 폼이 처음로드 될 때 숨겨진 입력 값이 분명히 표시되지 않습니다.

이 코드를 시도했지만 jQuery에 의해 수행 된 형식을 무시하는 것으로 보입니다. 어떤 $(...) 통화가의 jQuery 객체를 반환하기 때문에

 //creates an input field of text type formatted with a value of "00:00:00" 
     var input = $("<input>", 
      { 
       name: 'time'+i, 
       value: '00:00:00', 
       maxlength: '8', 
       size: '6', 
       type: 'text' 
      }); 

      //this variable recieves the value of the hidden input element 
      var temptime = document.getElementsByName('timetemp'+i); 


//if the temptime value is different indicating that a value had been entered before validation failed then make the jQuery created text inputs value equal that. 
      if (temptime[0].value != input.value) 
      input.value = temptime[0].value; 

    ..rest of function 

주셔서 감사합니다 예에서

답변

0

input는 jQuery를 개체입니다. 그러나 input.value을 시도하고 있습니다. .value은 DOM 요소 (기본 입력 상자)의 속성이지만 jQuery 객체는 속성이 아닙니다. input의 값을 설정하려면 같은 적절한 jQuery를 기능 사용 : 당신이 jQuery를 사용하고 있기 때문에, 그러나

input.val(temptime[0].value); 

을, 당신은 또한 사용할 수 있습니다

var temptime = $("#timetemp" + i); 

if (temptime[0].val() != input.val()) 

대신 :

var temptime = document.getElementsByName('timetemp'+i); 

if (temptime[0].value != input.value) 
관련 문제