[英]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.