$ .post,单选按钮值,jquery

时间:2013-01-30 13:28:37

标签: php javascript jquery

我无法使用$ .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 个答案:

答案 0 :(得分:3)

尝试更改此行:

{ gender: signup.gender.value }

对此:

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

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

{ gender: document.forms['signup'].gender.value }

答案 1 :(得分: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'] : '';

答案 2 :(得分:0)

试试这个......

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

问候。

答案 3 :(得分:0)

我刚刚找到答案

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

感谢大家的帮助!