0

我正在尝试通过 ajax 传递 from 值(单选按钮)。发送的值但错误。我有 4 台收音机,但表单不断发送第一个值 (==1)。各位大侠能否给我一些建议。为什么会发生?

这是我的代码:

<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>

顺便说一句,我正在使用引导程序。但这与代码无关。

问候,

4

4 回答 4

2

尝试这个:

var choice = $('input[name=vote]:checked').val();
于 2013-08-01T20:14:19.860 回答
2

因为您使用返回多个值的类,所以它只返回其中一个。要获得选择:

改变

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

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

我最初认为它是 :selected 来获取选定的收音机,但那是用于选择选项。结合其他答案以免混淆人们。:checked 用于单选按钮。

应该注意的是,从技术上讲,通过类而不是通过元素的属性来引用它在技术上更快,尽管这对您很重要。

于 2013-08-01T20:12:20.133 回答
1

当您应该检索input的值时,您正试图获取的值。这是因为许多元素可以共享一个类(即使是非单选按钮也可以有 class )但只有一个元素可以具有相同的名称。choice

var choice = $('input[name="vote"]').val();
于 2013-08-01T20:17:27.653 回答
0

你有没有尝试过?

$('input[name=vote]').val()
于 2013-08-01T20:11:58.137 回答