2013-07-22 4 views
3

내가 물어보고 싶은 것은 전체 화면이라는 체크 박스가 있고 체크했을 때 너비와 높이 인 두 개의 입력 필드를 비활성화하고 null 값으로 설정해야합니다. . 나는 j 쿼리를 잘 수행하지만 두 개의 입력 필드 값이 0이더라도 전체 화면으로 양식을 제출하면 해당 두 입력 필드의 이전 값으로 저장됩니다.jquery 속성을 사용하지 않고 입력 값 양식을 제출하십시오.

어떤 도움이 필요합니까?

$("#fullscreenCheckBox").on("change", function() { 
     if($(this).prop("checked")) { 
      $("#height").prop("disabled", true); 
      $("#height").val(""); 
      $("#width").prop("disabled", true); 
      $("#width").val(""); 

     } else { 
      $("#height").prop("disabled", false); 
      $("#height").prop("disabled", false); 
     } 
    }); 

값은 다음과 같이 null로 설정되어 그 있지만 폼이 제출 될 때 그것을 유지 나던

+0

일부 html을 표시하고 jquery. –

+0

코드 예제와 함께 질문하십시오. –

+0

@KamilT 코드가 있습니다. – canpoint

답변

11

입력이 양식 제출 시점에 disabled='true' 속성을 갖는 경우 값 isn ' 양식과 함께 제출. 또 다른 방법은 <input id='hiddenInputId' type='hidden' >처럼, 각 "볼 수"입력 많은 추가 숨겨진 필드를 사용하는 것입니다

$("#yourFormId").submit(function(){ 
    $("#YourInputId").prop('disabled', 'false'); 
}); 

, 자신의 값을 설정 : 당신은 같은 jQuery를에 제출 양식의 순간을 다시 활성화하려고 할 수 있습니다 jQuery에서. 사용자는 볼 수 없지만 양식 제출시 값은 계속 전송됩니다. 예 :

$("#yourInputId").change(function(){ 
    $("#hiddenInputId").val($(this).val())); 
}); 

그런 다음 제출을 처리하면 일반 입력 값을 무시하고 hiddens와 만 작업합니다.

개인적으로 두 번째 옵션 (숨겨진 입력 사항 포함)이 훨씬 좋다고 생각합니다. 확장 할 수도 있고, change()에서 DOM 요소 id를 하드 타이핑하는 대신 각 요소에 데이터 속성을 추가 한 다음 한 돌로 모든 새를 죽일 수 있습니다.

+0

숨겨진 필드를 보내 주시면 감사하겠습니다. 숨겨진 상태로 제출하지 않으셔도됩니다. 나는 아약스 양식을 사용하지 않기 때문에 제출 중에 활성화 할 수 없다. – canpoint

+0

당신은 이것을 사용할 수있다.이 대답의 첫 번째 예제 코드를 보라.이 코드는 양식이 제출 될 때 함수를 트리거합니다. 그것은 입력을 다시 가능하게하고 그 이후에 제출 프로세스가 진행되고 있습니다.) –

+0

nope @KamilT, 제출 도중 활성화 된 심지어 이전 값으로 제출합니다 – canpoint

0

나는 문제의 근원이 비활성화 입력 필드의 값은 서버에 게시되지 않는다는 생각 . 서버 측에서 수행 할 수있는 작업은 값이 게시되었는지 여부입니다 (값을 0으로 설정하지 않은 경우).

+0

jquery 코드 비활성화를 제거하면 정말 잘 게시됩니다. – canpoint

+0

비활성화 된 특성으로 인해 해당 값이 게시되지 않으므로 예입니다. – nubinub

+0

그래서 입력 필드의 새 값을 게시하는 것을 막을 수 있습니까? 그것은 변경되고있는 이전 값을 게시하기 때문에 – canpoint