繁体   English   中英

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

[英]Can't get input field value using javascript?

我似乎有使用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上查看实时示例

您的问题是您有多个具有相同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>

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

小提琴

将输入更改为:

<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"/>

好的..好像你正在复制你的表格。 您可以在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);
} 

它有点硬编码,但它会起作用。

既然你正在使用jQuery我只想尝试使用jQuery获取值,所以它应该是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM