2013-08-01 3 views
0

아약스를 통해 값 (라디오 버튼)을 전달하려고합니다. 값은 전송되었지만 잘못되었습니다. 4 개의 라디오가 있지만 양식은 첫 번째 값 (== 1)을 계속 전송합니다. 너희들이 나에게 몇 가지 제안을 해줄 수 있겠 니? 왜 그런가? 내가 부트 스트랩을 사용하고 있습니다 그런데jquery ajax를 통해 라디오에서 실제 값을 전송할 수 없습니다.

<ul class="nav nav-list"> 
<li><label for="1"><input type="radio" name="vote" id="1" class="choice" value="1">&nbsp;Choice 1</label></li> 
<li><label for="2"><input type="radio" name="vote" id="2" class="choice" value="2">&nbsp;Choice 2</label></li> 
<li><label for="3"><input type="radio" name="vote" id="3" class="choice" value="3">&nbsp;Choice 3</label></li> 
<li><label for="4"><input type="radio" name="vote" id="4" class="choice" value="4">&nbsp;Choice 4</label></li> 
    <li class="divider"></li> 
    <li>   
     <div id="vote_loading" style="display:none">loading...</div> 
     <div id="vote_result"></div><button class="btn btn-small btn-success" type="button" onClick = "voting()"><i class="icon icon-thumbs-up icon-white"></i>&nbsp;Vote</button> 
    </li> 
</ul> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script> 
    //voting 
    function voting(){ 
     var choice = $('.choice').val(); 
     $.ajax({ 
      type: "POST", 
      url: "inc/vote_chk.php", 
      data: {choice:choice} 
      }).done(function(result){ 
      $("#vote_loading").slideUp("slow"); 
      $("#vote_result").html(result).slideDown("slow"); 
     }); 
    } 
    </script> 

:

여기 내 코드입니다. 그러나 코드와 상관 없습니다.

감사합니다.

+0

jsfiddle? (아약스 전화없이) –

+0

이것은 시작하는 데 도움이 될 것입니다 : http://stackoverflow.com/questions/3464075/get-value-of-radio-button-group – BjornJohnson

답변

2

여러 값을 반환하는 클래스를 사용하고있어 그 중 하나만 반환하기 때문에. 선택한 얻으려면 :

var choice = $('.choice:checked').val(); 

변화를

var choice = $('.choice').val(); 

을 내가 처음에 생각했던 : 선택한 라디오를 얻기 위해 선택하지만, 그게 전부 옵션을 선택합니다. 사람들을 혼란스럽게하지 않기 위해 다른 답변을 결합했습니다. : checked는 라디오 버튼에 사용됩니다.

요소의 속성보다는 클래스에서 참조하는 것이 기술적으로 더 빠르다는 점에 유의해야합니다.

+0

수탉, 당신의 솔루션이 작동합니다. Thnx. – Wilf

0

시도해 보셨습니까?

$('input[name=vote]').val() 
2

이 시도 : 당신은 당신이 입력의 값을 검색해야 할 때 클래스의 값을 얻기 위해 노력하고있다

var choice = $('input[name=vote]:checked').val(); 
+0

아. 전화 해. 나는 라디오 버튼을 한동안 사용하지 않았다. : 선택되어 있지 않은 올바른 의사 선택기입니다. 라디오 버튼 용. – Rooster

1

. 많은 요소가 클래스를 공유 할 수 있기 때문입니다 (라디오가 아닌 버튼도 클래스 choice을 가질 수 있습니다). 단 하나의 요소 만 같은 이름을 가질 수 있습니다.

var choice = $('input[name="vote"]').val(); 
관련 문제