0

フォームから次の HTML スニペットがあります。jQueryは、どのラジオがチェックされているかを確認し、text()メソッドを使用して要素内のテキストを変更しています。これを書くためのより良い、よりクリーンな方法があると確信しています。誰かがその方法と理由を詳しく説明できますか?

<p>
    <span class="input_small"><html:radio property="jobPosting.employmentTypeCode" value="RFT" styleId="fulltime" ><label for="fulltime">Full-Time</label></html:radio></span>
    <span class="input_small"><html:radio property="jobPosting.employmentTypeCode" value="RPT" styleId="parttime" ><label for="parttime">Part-Time</label></html:radio></span>
</p>

<p>
    <label for="responsibilities"><span class="job-time">*</span> position available with growing technology and government contracting firm. This person is responsible for:</label>
    <html:textarea property="jobPosting.requirements" rows="5" styleClass="input_xxxlarge" styleId="responsibilities" > </html:textarea>
</p>

jQuery:

$(document).ready(function() {
    $('#fulltime').click(function() {
        if($('#fulltime').is(':checked')) {
            $('span.job-time').text('FT');
        }
    });
    $('#parttime').click(function(){
        if ($('#parttime').is(':checked')) {
            $('span.job-time').text('PT');
        }
    });
});

編集:できるだけ少ない量の jQuery コードでこのタスクを達成する方法を知りたいです。

4

3 に答える 3

1

セレクターを組み合わせて、クリック機能が 1 つだけになるようにすることができます (@Palash Mondal が言及したように、if を短くすることもできます)。

$('#fulltime, #parttime').click(function() {
    if($('#fulltime').is(':checked')) {
        $('span.job-time').text('FT');
    }
    if ($('#parttime').is(':checked')) {
        $('span.job-time').text('PT');
    }
});
于 2013-04-29T18:08:13.117 に答える
1

これを試して:

$('[id$=time]').change(function () {
    $('span.job-time').text($('#fulltime').is(':checked') ? 'FT' : 'PT');
});
  • changeの代わりにイベントを呼び出すclickので、
  • id$=timetimeテキストで終わるID用です
  • ラジオ ボタンがチェックされている場合fulltimeは、スパン テキストをFTelse as に設定しますPT
于 2013-04-29T18:08:20.923 に答える