0

PHPを使用して動的に作成されるフォームがいくつかあります。各フォームの上に必須のすべてのフィールドをリストしたいと思います。

tは次のようになります。

<div class="mandatory_list">Mandatory fields: first name, email</div>

<form>
<label>first name*</label><input type="text" />
<label>last name</label><input type="text" />
<label>email*</label><input type="text" />
<label>comments</label><input type="text" />
</form>

物事を単純化するのであれば、すべての必須ラベルに個別のクラスを与えることもできます。私はここまで来ました:

<script>
    var mandatory= ( $("label:contains('*')").text() );
    $('#mandatory_list').html("Mandatory fields: " + mandatory);
</script>

これにより、次の出力が得られます:「必須フィールド:名*電子メール*」。したがって、これは、すべてのアスタリスクをコンマに置き換える必要があることを意味します。これについては、おそらくもっと良い方法があります。

4

2 に答える 2

1

できるよ:

var mandatory= ( $("label:contains('*')").text().split('*').join(', ') );
$('#mandatory_list').html("Mandatory fields: " + mandatory);
于 2012-06-04T14:22:38.577 に答える
0

必須フィールドのクラスを使用する方が簡単だと思いますが、それはセレクターの好みにすぎません。

:まず、リスト内の余分なテキストを削除して、クラスを追加します。

<div class="mandatory_list">Mandatory fields:</div> 

<form> 
<label class='mandatory'>first name*</label><input type="text" /> 
<label>last name</label><input type="text" /> 
<label class='mandatory'>email*</label><input type="text" /> 
<label>comments</label><input type="text" /> 
</form>

次に、リストにデータを入力し、指定したとおりに最後のコンマを削除します。

var myList = $('.mandatory_list').text();
$('.mandatory').each(function() {
    myList += ' ' + $(this).text().replace('*', ',');
});
myList = myList.slice(0, myList.length - 1);
$('.mandatory_list').text(myList);

編集:あなたの「複数の」フォームに適応

$('form').each(function() {
    var myHeader = $(this).prev('.mandatory_list');
    var myList = myHeader.text();
    $(this).find('.mandatory').each(function() {
        myList += ' ' + $(this).text().replace('*', ',');
    });
    myList = myList.slice(0, myList.length - 1);
    myHeader.text(myList);
});
于 2012-06-04T15:01:03.877 に答える