0

我似乎在使用 javascript 获取字段值时遇到问题,我认为 facebook 弹出 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);
}  

您可以在http://goo.gl/op6r4查看实时示例

4

5 回答 5

5

您的问题是您有多个具有相同 id =>无效 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>
于 2012-04-24T18:08:40.983 回答
0

您需要在元素具有价值的某些事件上运行您的函数,或者如果您在加载时运行它,则为它们添加价值。

小提琴

于 2012-04-24T18:07:23.140 回答
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"/>
于 2012-04-24T18:23:31.153 回答
-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);
} 

它有点硬编码,但它会为此工作。

于 2012-04-24T18:10:45.297 回答
-2

既然你无论如何都在使用 jQuery,我只会尝试使用 jQuery 来获取值,所以它应该是:

var albumname = $('#photo_album_name').val();

于 2012-04-24T18:07:16.433 回答