jQuery对象.value返回undefined

时间:2015-12-15 17:25:36

标签: javascript jquery undefined

我正在建立一个简单的聊天,我被困在前端。

我想在加载聊天窗口之前询问用户他的名字和所需的房间,我需要一些变量中的数据。问题是浏览器只记录undefined。我也尝试直接从代码和Chrome控制台进行日志记录。

var nameChoice, roomChoice;

var init = function() {

    $("#init-name").removeClass("hidden").animate({"left" : "35%"}, 300); //slide in name form

    $("#init-name .btn-form").click(function() {

        nameChoice = $("#init-name input").value; //save chosen name in nameChoice?
        console.log(nameChoice); //debug
        $("#init-name").animate(
            {"left" : "-35%"}, 300,
            function() {
                $(this).addClass("hidden");
                $("#init-room").removeClass("hidden");
                $("#init-room").animate({"left" : "35%"}, 300);
        });  //remove name form and slide in room form in callback
    });
    $("#init-room .btn-form").click(function() {
        roomChoice = $("#init-room select").value; //save chosen room in roomChoice?
        console.log(roomChoice); //debug
        $("#init-room").animate(
            {"left" : "-35%"}, 300,
            function() {
                $(this).addClass("hidden");
                $("#chat-main").removeClass("hidden");
        }); //remove room form and show page in callback
    });
}
$(document).ready(init);

它是否必须对变量范围做任何事情(我确实将它们从任何函数中删除)?

2 个答案:

答案 0 :(得分:3)

更改此

nameChoice = $("#init-name input").value; //save chosen name in nameChoice?*

到这个

nameChoice = $("#init-name input").val(); //save chosen name in nameChoice?*

还有这个

roomChoice = $("#init-room select").value; //save chosen room in roomChoice?

到这个

roomChoice = $("#init-room select").val(); //save chosen room in roomChoice?

答案 1 :(得分:1)

您需要使用val函数才能获取值。

http://api.jquery.com/val/

// Get the value from a dropdown select
$( "select.foo option:selected").val();

// Get the value from a dropdown select even easier
$( "select.foo" ).val();

// Get the value from a checked checkbox
$( "input:checkbox:checked" ).val();

// Get the value from a set of radio buttons
$( "input:radio[name=bar]:checked" ).val();