Non riesco a trovare il modo migliore di utilizzare jQuery per applicare le modifiche a più campi di input dopo aver apportato una modifica a un altro campo di input. Il codice sotto funziona se c'è solo 1 ID campagna. Tuttavia, quando sono presenti più campagne, il mio codice applica semplicemente l'ultima istanza a tutte le campagne. Come posso modificarlo per applicarlo individualmente a ciascun ID campagna?Applicare proprietà a più oggetti
OBIETTIVI
Organizzazione di stato passa da 'attivo' a 'pausa'.
per ogni ID di campagna:
- Stato Disabilita campagna discesa.
- Se lo stato della campagna è 'Rinnovato', lasciare 'Rinnovato'.
- Se lo stato della campagna è "Attivo", passare a "In pausa".
- Se lo stato della campagna è "in pausa", lasciare "in pausa".
Lo stato organizzazione passa da "In pausa" a "Attivo".
per ogni ID di campagna:
- Abilita Stato campagna discesa.
- Lascia lo stato invariato.
Ecco il codice (si prega di ignorare le tabelle!):
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>
Ci deve essere un modo più facile e più semplice. Nuovo a jQuery, ma riprendendolo il più velocemente possibile Grazie per il tuo aiuto!
See Fiddle: http://jsfiddle.net/riverecho/40087wdb/8/
E quindi qual è la tua domanda? Nello specifico? –
Il codice sopra riportato funziona se esiste solo 1 ID campagna. Tuttavia, quando sono presenti più campagne, il codice sopra riportato applica semplicemente l'ultima istanza a tutte le campagne. Come posso cambiare questo per applicarlo individualmente a ciascun ID campagna? Aggiornerò anche il post iniziale. – riverecho
puoi usare [.each()] (https://api.jquery.com/each/) – dippas