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

入力を次のように変更します。

<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 に答える
0

要素に値があるイベントで関数を実行するか、ロード時にこれを実行している場合は値を追加する必要があります。

フィドル

于 2012-04-24T18:07:23.140 に答える
-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 に答える