为什么jQuery不能设置我的价值?

时间:2013-04-18 18:14:53

标签: jquery

所以这是我的代码。我正在尝试设置隐藏表单输入的值。

if($gender == "BOY" || $gender == "MALE" || $gender == "M" || $gender == "1") {
        console.log('Its a boy!');
        $(".girlsonly").hide();
        document.getElementsByName('dressjacket')[0].placeholder='Jacket';
        $('#majorgender').val('1');
    };
    if($gender == "GIRL" || $gender == "FEMALE" || $gender == "F" || $gender == "0") {
        console.log('Its a girl!');
        document.getElementsByName('dressjacket')[0].placeholder='Dress';
        $('#majorgender').val('0');
    };

以下是表单输入:

<input type="hidden" name="majorgender" id="majorgender"></input>

它成功记录了“它是一个女孩!”或者“它是个男孩!”但是当我插入“alert($('majorgender').val());”后,它会提醒“未定义

如果我记录alert($('majorgender'))它回复“对象对象”,所以我知道它存在,我只是不知道为什么它设置不正确。

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

你需要一个# - alert($('#majorgender').val()); - 否则它会寻找一个名为majorgender而不是ID的标签

即。您目前正在寻找<majorgender...

答案 1 :(得分:2)

您正在警告输入majorgender,例如$('majorgender').val() 当你确实需要像$('#majorgender').val()

那样提醒它时

因为您是按ID选择此输入,所以您必须在选择器名称前加一个哈希#

请注意,jquery定义每个选择器,即使它作为对象无效,因此如果您的日志显示的对象意味着您的选择器是正确的并且存在,则不需要它:)

试着告诉我这是否有用:)

答案 2 :(得分:1)

你错过了#改为

alert($('majorgender').val());

alert($('#majorgender').val());