1

我无法使用 $.post 传递单选按钮值,谁能帮我找出问题?

我得到了未定义的索引:性别

<?php
    $gender = $_POST['gender'];    
    if (!$gender) {
        echo $gender;
    }    
?>

<script type="text/javascript">
    function get(){
        $('#error').hide();

        $.post(
            'signup.php', 
            { gender:signup.gender.value },
            function(output){
                $('#error').html(output).fadeIn(100);
            }
        )       
    }
</script>

<form name="signup">
    <input class="radio" type="radio" name="gender" value="male"/> Male<br/>
    <input class="radio" type="radio" name="gender" value="female"/> Female
    <input type="button" value="submit" onclick="get();" />
</form>

<div id="error"></div>
4

4 回答 4

3

尝试更改此行:

{ gender: signup.gender.value }

对此:

{ gender: $('.radio').val() }

如果您希望将其保留为 vanilla javascript,则需要显式使用该forms集合:

{ gender: document.forms['signup'].gender.value }
于 2013-01-30T13:31:46.797 回答
0

i just found the answer

$('input:radio[name=gender]:checked').val()

thanks for everyone's help!

于 2013-01-30T15:27:43.503 回答
0

您可以对表单使用 jquery 序列化:

//Form data:
var aData = $('#formID').serializeArray();
//Create param string:
var sSend = $.param(aData);
//Call ajax:
$.post('signup.php', sSend, function(sData){
   ...
});

或值:

$('input[name=gender]:checked').val();

在你的 php 中更好:

$gender = isset($_POST['gender']) ? $_POST['gender'] : '';
于 2013-01-30T13:33:06.120 回答
0

尝试这个...

{ gender: $('.radio [name="gender"]').val() }

问候。

于 2013-01-30T13:37:21.793 回答