他の入力フィールドを変更した後、複数の入力フィールドに変更を適用するためにjQueryを使用する最良の方法を考え出すのに問題があります。以下のコードは、キャンペーンIDが1つしかない場合に機能しています。しかし、複数のキャンペーンが存在する場合、私のコードは最後のインスタンスをすべてのキャンペーンに適用するだけです。 これを変更して各キャンペーンIDに個別に適用するにはどうすればよいですか?複数のオブジェクトにプロパティを適用する
GOALS
組織の状態を '一時停止' に 'アクティブ' から切り替えています。各キャンペーンIDの
:
- 無効にキャンペーンのステータスは、ドロップダウン。
- キャンペーンステータスが「更新済み」の場合は、「更新済み」のままにしてください。
- キャンペーンステータスが[アクティブ]の場合は、[一時停止]に切り替えます。
- キャンペーンステータスが[一時停止]の場合は、[一時停止]のままにします。
組織ステータスが[一時停止]から[有効]に切り替わります。各キャンペーンIDの
:
- 有効にキャンペーンのステータスは、ドロップダウン。
- ステータスを変更しません。ここで
コードは(テーブルを無視してください!)である:
var campaign_status = function() {
// If the Organization Status is set to 'Paused' and the Campaign is 'Active', make the campaign status 'Paused' and disable the drop down.
if ($('#orgautorenewstatus').val() == "Pause" && $('.autorenewstatus').val() == "Active") {
$('.autorenewstatus').prop('disabled', 'disabled');
$('.autorenewstatus').val("Pause");
}
// If the Organization Status is set to 'Paused' and the Campaign is 'Paused' or 'Renewed', leave the Campaign Status and disable the drop down.
else if ($('#orgautorenewstatus').val() == 'Pause') {
$('.autorenewstatus').prop('disabled', 'disabled');
}
else {
$('.autorenewstatus').prop('disabled', false);
}
};
$(campaign_status);
$("#orgautorenewstatus").change(campaign_status);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Organization Status</h3>
<select id="orgautorenewstatus" name="orgautorenewstatus">
<option value="Active" selected="selected">Active</option>
<option value="Pause">Paused</option>
</select>
<br />
<br />
<h4>Campaign Status</h4>
<table>
<tbody>
<tr>
<td>#1</td>
<td>
<select class="autorenewstatus" name="autorenewstatus_48622">
<option value="Pause">Paused</option>
<option value="Active" selected="selected">Active</option>
<option value="Renewed">Renewed</option></select>
</td>
</tr>
<tr>
<td>#2</td>
<td>
<select class="autorenewstatus" name="autorenewstatus_48884">
<option value="Pause">Paused</option>
<option value="Active">Active</option>
<option value="Renewed" selected="selected">Renewed</option>
</select>
</td>
</tr>
<tr>
<td>#3</td>
<td>
<select class="autorenewstatus" name="autorenewstatus_49000">
<option value="Pause">Paused</option>
<option value="Active" selected="selected">Active</option>
<option value="Renewed">Renewed</option>
</select>
</td>
</tr>
</tbody>
</table>
簡単に、より簡単な方法がなければなりません。 jQueryの新機能ですが、できるだけ早くそれを拾い上げてくださいありがとうございました!
参照フィドル:複数のキャンペーンのために http://jsfiddle.net/riverecho/40087wdb/8/
だからあなたの質問は何ですか?具体的には? –
キャンペーンIDが1つだけの場合、上記のコードは機能しています。それでも、複数のキャンペーンが存在する場合、上記のコードは最後のインスタンスをすべてのキャンペーンに適用するだけです。これを変更して各キャンペーンIDに個別に適用するにはどうすればよいですか?私は最初の投稿も更新します。 – riverecho
[.each()](https://api.jquery.com/each/) – dippas