我似乎有使用javascript获取字段值的问题,我认为facebook popup jquery脚本阻止它但我不知道为什么......
如果有人可以帮助我,我会很感激,因为现在我要把头发撕掉。
<input type="text" id="photo_album_name" style="width: 280px; height: 20px; color: #525252;" />
<textarea id="photo_album_desc" style="width: 280px; height: 100px; color: #525252;"></textarea>
function submit_photoalbum()
{
var albumname = document.getElementById('photo_album_name').value;
var albumdesc = document.getElementById('photo_album_desc').value;
alert("Album name: "+ albumname + ", Album Desc: " + albumdesc);
}
查看实时示例
答案 0 :(得分:5)
您的问题是您有多个具有相同ID =&gt;的元素 HTML无效
<input type="text" id="photo_album_name" style="width: 280px; height: 20px; color: #525252;">
<input type="text" id="photo_album_name" style="width: 280px; height: 20px; color: #525252;">
<textarea id="photo_album_desc" style="width: 280px; height: 100px; color: #525252;"></textarea>
<textarea id="photo_album_desc" style="width: 280px; height: 100px; color: #525252;"></textarea>
答案 1 :(得分:0)
您需要在元素具有值的某个事件上运行您的函数,或者如果您在加载时运行它,则需要为它们添加值。
答案 2 :(得分:0)
将输入更改为:
<input class="photo_album_name" style="width: 280px; height: 20px; color: #525252;" type="text"/>
和
<textarea class="photo_album_desc" style="width: 280px; height: 100px; color: #525252;"/>
和您的选择器:
var albumname = $('#facebox').find('.photo_album_name').val();
var albumdesc = $('#facebox').find('.photo_album_desc').val();
请注意这个重复的ID:
<input id="add" style="padding-bottom: 3px; padding-left: 5px; padding-right: 5px; font-size: 13px; margin-right: 15px; padding-top: 3px;" onclick="submit_photoalbum();" type="button" value="Create Photo Album"/>
更改为:
<input class="add" style="padding-bottom: 3px; padding-left: 5px; padding-right: 5px; font-size: 13px; margin-right: 15px; padding-top: 3px;" onclick="submit_photoalbum();" type="button" value="Create Photo Album"/>
答案 3 :(得分:-1)
好的..好像你正在复制你的表格。您可以在HTML上使用它,当您调用facebox时,它会复制隐藏的HTML。这复制了ID(正如gdoron所说的那样)。
使用另一个框架或将jQuery插件更改为更稳定的插件(如http://fancybox.net)可能是一个好习惯。无论如何。您可以将submit_photoalbum函数更改为:
function submit_photoalbum()
{
var albumname = $("#facebox > input").val();
var albumdesc = $("#facebox > textarea").val();
alert("Album name: "+ albumname + ", Album Desc: " + albumdesc);
}
它有点硬编码,但它会起作用。
答案 4 :(得分:-2)
因为你正在使用jQuery,我只想尝试使用jQuery获取值,所以它应该是:
var albumname = $('#photo_album_name').val();