3 つのテキスト ボックスとその横に [追加] ボタンがある jsp ページがあります。ここtabindex
で、動的に追加された要素の を設定する必要があります。どうすればいいですか?
1 に答える
[お気づきかもしれませんが、コードを投稿すると、他の誰かがより明確な答えを出すことができます。作業する例がなければ、あなたのコードと環境が何であるかを想像することしかできません.ASP.NET MVC3 + jQueryから]
[このスタックオーバーフローの投稿の情報を使用し、少し修正しました。]
jQuery を使用して tabindex 値を変更します。jQuery によって動的に追加される複数のフォームがあります。フォームは div と style="display: table" を使用して、テキスト フィールドを列に編成します。
【関連するCSSスタイル】
.tb-table
{
display: table;
}
.tb-row
{
display: table-row;
}
.tb-cell
{
display: table-cell;
}
[ブラウザー用の html を生成する ASP.NET MVC3 Razor cshtml のチャンク -- 読み取り可能である必要があります]
<div class="tb-table">
<div id="namerow1" class="tb-row">
<div class="tb-label tb-cell" id="l_firstname1">
@Html.LabelFor(model => model.firstname1)
</div>
<div class="tb-field tb-cell" id="firstname1">
@Html.TextBoxFor(model => model.firstname1, new { tabindex = "1" })
@Html.ValidationMessageFor(model => model.firstname1)
</div>
<div class="tb-label tb-cell" id="l_firstname2">
@Html.LabelFor(model => model.firstname2)
</div>
<div class="tb-field tb-cell" id="firstname2">
@Html.TextBoxFor(model => model.firstname2, new { tabindex = "2" })
@Html.ValidationMessageFor(model => model.firstname2)
</div>
</div>
<div id="namerow2" class="tb-row">
<div class="tb-label tb-cell">
@Html.LabelFor(model => model.lastname1)
</div>
<div class="tb-field tb-cell">
@Html.TextBoxFor(model => model.lastname1, new { tabindex = "1" })
@Html.ValidationMessageFor(model => model.lastname1)
</div>
<div class="tb-label tb-cell">
@Html.LabelFor(model => model.lastname2)
</div>
<div class="tb-field tb-cell">
@Html.TextBoxFor(model => model.lastname2, new { tabindex = "2" })
@Html.ValidationMessageFor(model => model.lastname2)
</div>
</div>
</div>
列のすべての値に tabindex を使用します。ユニークな注文だけではありません。私がテストしたブラウザでは、同じタブインデックスを持つ複数のテキスト フィールドがある場合、html コードで最初に検出されたテキスト フィールドがタブ ナビゲーションによって最初に選択されます。
したがって、私が持っているフォームごとに、0 ~ 9 のタブ値を使用してそれらをグループ化します。個々のフォームのタブ オーダーが思いどおりに機能するようになったら、次の jQuery を使用して、動的に追加する各フォームの tabindex 値を 10 (または 20、30、または 40) ずつ増やします。最初の 10 進数である 0 ~ 9 は、そのフォーム内のタブを編成し、係数を 10 ずつ増やすと、後続のフォーム タブが追従し続けます。
$('.createtab-form [tabindex]').each(function () {$(this).attr('tabindex', parseInt($(this).attr('tabindex'))+10)})
これは私自身の最初の試みです。他の誰かがより良い方法を持っていると確信しています。どう考えているか教えてください。