1

動的要素を生成している内に以下のJSPコードがあります。formdiv

<div class="ans_panel<%=qcount%>">
    <textarea class="text_<%=qcount%>" id="add_answer<%=qcount%>" rows="0" cols="80"></textarea>

    <input type="hidden" id="hiddenAns" value="<%=qcount%>" />
    <br>
    <br>

    <button class="post<%=qcount%>" onclick="addAns();">Post Answer</button>&nbsp;&nbsp;&nbsp;

    <button class="cancel<%=qcount%>">Cancel</button>
</div>
4

5 に答える 5

1

それを javascript ルーチンに渡すだけです。

<button class="post<%=qcount%>" onclick="addAns('<%=qcount%>');">Post Answer</button>
...
function addAns(id) {
   var el = $("#text_" + id);
   ...
}
于 2012-07-25T09:34:52.873 に答える
0

次のように簡単にする必要があります。

function addAns(el) {
    alert(el.id);
    document.getElementById("hiddenSubmitAns").value = "AddSubmit";
    var text = null;
    var i = 0;
    for (i = 0; i < 3; i++) {
        text = $("#add_answer" + i).val();
        if (text != "") {
            j = i;
            alert(text);
            break;
        }
    }
    text = text.replace(/(^\s*)|(\s*$)/g, "");
    if (text == "") {
        alert("Please enter the answer");
        document.getElementById("#add_answer" + i).select();
        document.getElementById("#add_answer" + i).focus();
        return false;
    }
    document.abc.submit();
    return true;
}

<div class="ans_panel<%=qcount%>">
     <textarea class="text_<%=qcount%>" id="add_answer<%=qcount%>" rows="0" cols="80"></textarea>
     <input type="hidden" id="hiddenAns" value="<%=qcount%>" />
     <br>
     <br>
     <button class="post<%=qcount%>" onclick="addAns(this);">Post Answer</button>&nbsp;&nbsp;&nbsp;
     <button class="cancel<%=qcount%>">Cancel</button>
</div>

にパラメーターを追加してから、 passaddAnsに更新したことに注意してください。onclickthis

それから私は警告el.idしています、またはalert($(el).attr('id'));jQueryを使用している場合は使用できます。

于 2012-07-25T09:34:40.853 に答える
0

ページに複数のテキスト領域がありますか?

そうでない場合は、次を使用してアクセスし$("textarea")、その ID を取得できます。$("textarea").attr("id")

于 2012-07-25T09:35:27.290 に答える
0

を使用できますjQuery('[attribute^="value"]')。指定された文字列で始まる値を持つ指定された属性を持つ要素を選択します。

var theTextArea = $('textarea[id^="add_answer"]');

それから

var theId = theTextArea.attr("id");
于 2012-07-25T09:35:28.910 に答える
0
var elements = document.getElementsByTagName('textarea');
for(var i = 0; i < elements.length; i++) {
    if(elements[i].class.indexOf('text') === 0) {
         return elements[i].id;
    }
}
于 2012-07-25T09:35:52.000 に答える