所以这是我的代码。我正在尝试设置隐藏表单输入的值。
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'))
它回复“对象对象”,所以我知道它存在,我只是不知道为什么它设置不正确。
有什么想法吗?
答案 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());