使用javascript无法获取输入字段值?

时间:2012-04-24 18:00:24

标签: javascript jquery html

我似乎有使用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);
}  

您可以在http://goo.gl/op6r4

查看实时示例

5 个答案:

答案 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)

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

FIDDLE

答案 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();