2011-05-15 5 views
3

모든 입력 텍스트 박스, 라디오 그룹, 체크 박스 등을 얻으려고합니다. 선택한 라디오 및 체크 박스 값을 가져 오는 데 문제가 있습니다. 알아낼 수 없습니다.div에 대한 모든 입력을 Ajax 요청으로 받으십시오.

텍스트 상자를 가져올 수 있지만 올바른 위치에서 "선택한 항목"을 가져올 수 없습니다. 현재로서는 선택한 값이 아닌 라디오/체크 박스의 첫 번째 값만 가져옵니다.

$('#form_1 input').each(function(key)    
    formData += '&'+$('#'+this.id).attr('name')+'='+$('#'+this.id).val(); 
}); 

감사

$('#form_1 input').each(function(key, value) {    
    if ((this.type === "radio" || this.type === "checkbox") && this.checked === true) { 
     val = this.value; 
    } else { 
     val = this.value; 
    } 

    alert($('#'+this.id).attr('name') + ' = ' + val); 
    formData += '&'+$('#'+this.id).attr('name')+'='+val;  
}); 

확인 편집을 할

지금 그래서 나는 걸음 더 가까이 오전 라디오 등을위한 모든 가치를 얻을. 이제 선택한 라디오의 값을 가져와야합니다.

감사

답변

2
var val; 
if (this.type === "radio" || this.type === "checkbox") { 
    val = this.checked; 
} else { 
    val = this.value; 
} 

및 확인란 :

$('form').submit(function() { 
    alert($(this).serialize()); 
    return false; 
}); 

이 표준적인 쿼리 문자열을 생성 checked 속성.

는 업데이트

당신은 당신이 올바른 위치에서 그 괄호가 필요

((this.type === "radio" || this.type === "checkbox") && this.checked === true)

을 의미

(this.type === "radio" || (this.type === "checkbox" && this.checked === true))

을 썼다.

또한 편집

논리는 조금 깨진했다.

기본적으로 원하는 것.

if ((this.type === "radio" || this.type === "checkbox") && this.checked === false) { 
    return; 
} 

이것은 라디오/체크 박스가 선택되지 않은 경우 아무 것도하지 않음을 의미합니다.

+0

@ 레이 노스 - 도와 줘서 고마워. 라디오 값은 나에게 가치가 있습니다. 그래서 어떻게 선택 값을 얻습니까? – Jon

+0

@ 존 당신은'.checked'를 호출하여 그것들이 체크되었는지 확인할 수 있습니다. 그런 다음'.value'를 호출하여 체크 된 항목의 값을 가져옵니다. – Raynos

+0

@Raynos - 편집했는데 편집 할 곳을 모르는 신입 사원입니다. 내가 선택한 라디오 대신 모든 값을 라디오로 가져 오는 현재의 게시물을 편집했습니다. 지금까지 감사드립니다. – Jon

0

이 직접 귀하의 질문에 대답하지 않지만 이미 사용할 수 뭔가를 달성하려는 것 같습니다 - 당신이 serialize()을 확인 할 수 있습니다 - 그냥 사용 var formData = $('#form_1').serialize()

3

로 사용 serialize()[docs] 방법.

선택한 요소의 값을 가져옵니다. 워드 프로세서

var formData = $('#form_1').serialize(); 

:

.serialize() 메소드는, 개별 형상 요소를 선택한 JQuery와 오브젝트에 작용하고있다. 그러나, 직렬화 태그 자체를 선택하는 일반적으로 쉽게 : 당신이 걱정

a=1&b=2&c=3&d=4&e=5 
라디오를 들어
+0

'.serialize'가 훨씬 우수합니다. Oh btw 어떻게 2 개월의 휴가가 되었습니까;) – Raynos

+0

@ Raynos : 훨씬 더 생산적입니다! : O) 그러나 멀리 머물 수 없었다. 당신의 담당자가 조금 너무 높아지고있었습니다. ; o) – user113716

+0

@patrickdw 왜 돌아 왔니! 그래서 중독성 저주입니다.) – Raynos

관련 문제