1

異なる入力名と ID で動的に作成される複数のフォームがあります。独自のものは、ラベルの内部 HTML だけです。jQueryでHTMLの内側のラベルを介して入力を選択することは可能ですか? これは私の患者の生年月日ブロックの例です。

<div class="iphorm-element-spacer iphorm-element-spacer-text iphorm_1_8-element-spacer">
<label for="iphorm_081a9e2e6b9c83d70496906bb4671904150cf4b43c0cb1_8">events=Object { mouseover=[1], mouseout=[1]}handle=function()data=Object { InFieldLabels={...}}
    Patient DOB
    <span class="iphorm-required">*</span>
</label>
<div class="iphorm-input-wrap iphorm-input-wrap-text iphorm_1_8-input-wrap">
    <input id="iphorm_081a9e2e6b9c83d70496906bb4671904150cf4b43c0cb1_8" class="iphorm-element-text iphorm_1_8" type="text" value="" name="iphorm_1_8">events=Object { focus=[1], blur=[1], keydown=[1], more...}handle=function()
</div>
<div class="iphorm-errors-wrap iphorm-hidden"> </div>

これは Wordpress プラグインにあり、従業員がサイトを編集できるように構築しているため (これは実際には Wordpress ネットワークです)、可能であればプラグインを変更したくありません。ラベル「for」と入力「id」は同じ動的キーを共有するため、これはおそらく id を取得する方法かもしれませんが、これを行うより短い方法があるかどうかを確認したかったことに注意してください。

ここでは、おそらく使用されていないものをクリーンアップしました...

<div>
<label for="iphorm_081a9e2e6b9c83d70496906bb4671904150cf4b43c0cb1_8">
    Patient DOB
    <span class="iphorm-required">*</span>
</label>
<div>
    <input id="iphorm_081a9e2e6b9c83d70496906bb4671904150cf4b43c0cb1_8">
</div>

4

3 に答える 3

1
var getForm = function(labelInnerHtml) {
    var $labels = jQuery('label');
    $labels.each(function() {
       if (jQuery(this).html() == labelInnerHtml) {
            var for_id = jQuery(this).attr('for');
            return jQuery('#'+for_id);
        }
    });
    return [];
};​​
于 2012-12-17T17:01:37.433 に答える
1

contains セレクターを使用してPatient DOBラベルを選択し、関連する入力を見つけることができます。

$('label:contains("Patient DOB")').parent('div').find('input');

labelこれは、とinputが同じにラップされていることを前提としており、div複数のペアが同じ にある場合は機能しない可能性がありdivます。少なくとも最初の部分は を含むラベルを取得しPatient DOB、その後の部分を調整して正しい入力要素を見つけることができます。

jquery セレクターの詳細については、APIを参照してください。

これを示すフィドルを次に示します。

于 2012-12-17T17:14:07.027 に答える
0

入力のクラス iphorm_1_8 は、フォーム要素ごとに一意です。簡単です。

$('.iphorm_1_8');
于 2012-12-19T09:10:18.143 に答える