2015-01-22 2 views
1

html로 비활성화 된 필드가 있고 컨트롤러에 ajax를 통해 요청을 보냈습니다.이 필드는 요청과 함께 제공되지 않지만 여전히 Bean에 있습니다.비활성화 된 입력에서 데이터 제거

어떻게 bean에서 자동으로 제거 할 수 있습니까?

는 SimpleController GSP에서

def update(ConfiguracaoSistema configuracaoSistemaInstance) { 
    if (configuracaoSistemaInstance == null) { 
     notFound() 
     return 
    } 

    if (configuracaoSistemaInstance.hasErrors()) { 
     respond configuracaoSistemaInstance.errors, view: 'index' 
     return 
    } 

    configuracaoSistemaInstance.save flush: true 

    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.updated.message', args: [message(code: 'configuracaoSistema.label', default: 'ConfiguracaoSistema'), '']) 
      redirect action: "index" 
     } 
     '*' { respond configuracaoSistemaInstance, [status: OK] } 
    } 
} 

나는 JQuery와 통해 비활성화 설정 한 후 내가 JQuery와

<g:textField name="enderecoServicosCatix" class="form-control input catix" disabled="${show}" value="${configuracaoSistemaInstance?.enderecoServicosCatix}"/> 

으로 해제하겠다 '필드가

$('.catix').each(function(){ 
      $(this).attr("disabled", true); 
      $(this).prop('disabled', true); 
     }); 

내가 요청을 전송 컨트롤러에 저장 한 인스턴스가 비활성화 된 필드에서 'null'을 얻길 원하지만 키를 누릅니다. 마지막 값.

+0

코드를 표시하십시오. 특히 당신이 말하는 컨트롤러 부분. 어쩌면 이미 시도한 것일 수도 있습니다. – cfrick

+0

내 질문에 편집 됨 –

+0

필드를 원래의 마지막 값으로 재설정하면됩니까? – sebnukem

답변

1

여기 한 가지 방법이 있습니다. 필드를 비활성화 할 때 원래 값으로 복원하십시오. 원래 값은 입력 필드 자체 또는 숨겨진 필드의 데이터 속성으로 저장할 수 있습니다. 비활성화 할 때

<g:textField name="enderecoServicosCatix" class="form-control input catix" disabled="${show}" data-originalvalue="${configuracaoSistemaInstance?.enderecoServicosCatix}" value="${configuracaoSistemaInstance?.enderecoServicosCatix}"/> 

그런 다음 원래 값을 복원 :

는 원래 값 저장하기 입력 요소에 데이터 속성을 추가합니다. (나는 그것을 테스트하지 않았습니다)
$('.catix').each(function(){ 
    $(this).attr("disabled", true); 
    $(this).prop('disabled', true); 
    $(this).val($(this).attr('data-originalvalue')); 
}); 


다른 방법으로 컨트롤러에 새 매개 변수를 만들어 전달하는 것입니다. 뷰에서받은 데이터를 바인딩 할 때 모든 "catix"입력을 무시하도록 구조화하십시오. 이 새로운 매개 변수는 다음과 같은 숨겨진 필드입니다.

<g:hidden name="catix_disabled" value="false"/> 
+0

두 번째 옵션은 트릭을 할 것입니다. 이미 그것에 대해 생각했지만 grails에 의해 자동으로 수행하는 방법이 없습니까? 내 말은, 값을 확인하고 수동으로 null을 설정할 필요가 없다는 것입니다. –

+0

좋은 질문이고 대답을 모른다 ... – sebnukem

+0

어쨌든, 당신의 도움을! 두 번째 방법을 사용하겠습니다. –

관련 문제