0

次の状況は正常に機能します(JSPファイル)。

<p class="FormInputElement">
        <label for="description">Description</label>
        <input type="text" class="description" id="description"/><br />
</p>
<button class="Button75" type="submit" id= "editWidget" alt="Edit widget">
        <img src="/tis/img/icons/tick.png">
                Save
</button>

私のサーブレットである.JSファイルでは、description値は次のように読み取ることができます。

$(function() {
    $("#editWidget").click(function(e){
        var description = $(this).parent().find('.description').val();

ただし、<fieldset>ボタンの周りにタグを付けると、説明は常に「」になります。サーブレットは値を読み取ることができなくなりました。これはどのように可能ですか?フィールドセットを使用すると何が変わりますか?

前もって感謝します!

4

1 に答える 1

3

元のマークアップ構造はこれです

  • DIV (またはその他のコンテナ)
    • P
      • ラベル
      • INPUT#description
    • BUTTON#editWidget

ここで$(this).parent()DIVに移動し、.find()そこから作業して、期待される要素を見つけます。

を使用<fieldset>すると、マークアップ構造が次のように変更されます。

  • DIV
    • P
      • ラベル
      • INPUT#description
    • フィールドセット
      • BUTTON#editWidget

ここで$(this).parent()FIELDSETに移動しますが、.find()何も見つかりません。

解決策:使用しないでください。.parent()を使用してください.closest("div")

于 2012-11-14T09:33:47.153 に答える