0

これが私のコードの構造です:

<div class='img_box' title='icon'>
  <div>
    <a href='#lightbox_add' rel='prettyPhoto[g1]'>
      <img alt='' src='images/img_plus_green.png' title=''/>
      <span class='description'>
        <span class='title'>Click to Answer</span>
      </span>
    </a>
    <div id='lightbox_add' class="hide">
        <div class='lightbox_add_cand'>
            <h4>Add a new answer</h4>
            <div class='block_answer'>
                <div class='line'>
                </div>
                <br/>
                <form action='/add/1' id='add_cand_form' method='post'>
                    <div class='input_box'>
                        <input class='s_inp_text' id='cand_title' name='cand_title' title='Write a title...' type='text'/>
                    </div>
                    <div class='input_box'>
                        <input class='s_inp_text' id='pic_url' name='pic_url' title='URL of picture...' type='text'/>
                    </div>
                    <a class='button_big dark_red' href='' id='add_cand_button'>
                      <span class='left'>
                        <span class='right'>
                          Save
                                               </span>
                      </span>
                    </a>
                </form>
            </div>
        </div>
    </div>
</div>

<a href="#lightbox_add"> 要素は、クリックすると PrettyPhoto ライトボックスを起動し、<div id="lightbox_add"> で定義された html にロードします。ライトボックスの中にフォームがあります。私の問題は、JavaScriptを介してフォーム要素の値を読み取ることです:

$("#add_cand_button").live('click', function() {
  alert( $("#cand_title").val());              //shows an empty alert box
  alert( $("#pp_full_res #cand_title").val());  //shows an alert box that says "undefined"
});

$("#pp_full_res #cand_title").val(); 正しいアプローチである必要がありますが、機能しません。注意すべきもう 1 つの点: DOM で #cand_title を検索しても、何も見つかりません。

prettyphoto 内の入力要素の値にアクセスする正しい方法を知っている人はいますか?

4

1 に答える 1

1

thatsという名前の要素がないpp_ful_resため、「未定義」を返す理由があります

jsfiddler http://jsfiddle.net/screepts/DpeTr/のコードは次のとおりです。

あなたalert( $("#cand_title").val()); は値をうまく返します。

于 2012-07-10T01:07:40.860 に答える