簡體   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