Tôi đang gặp khó khăn trong việc tìm ra cách tốt nhất để sử dụng jQuery để áp dụng thay đổi cho nhiều trường nhập sau khi thay đổi được thực hiện cho trường nhập khác. Mã bên dưới hoạt động nếu chỉ có 1 Id chiến dịch. Tuy nhiên, khi có nhiều chiến dịch có mặt, mã của tôi chỉ áp dụng trường hợp cuối cùng cho tất cả các chiến dịch. Tôi làm cách nào để thay đổi điều này để áp dụng cho từng Id chiến dịch riêng lẻ?Áp dụng thuộc tính cho nhiều đối tượng
MỤC TIÊU
Tổ chức Tình trạng được chuyển từ 'Hoạt động' thành 'tạm dừng'.
Đối Mỗi id vận động:
- Status Disable vận động thả xuống.
- Nếu Trạng thái chiến dịch là 'Đã gia hạn', hãy để là 'Đã gia hạn'.
- Nếu Trạng thái chiến dịch là 'Hoạt động', hãy chuyển sang 'Tạm dừng'.
- Nếu Trạng thái chiến dịch bị 'Tạm dừng', hãy để ở trạng thái 'Tạm dừng'.
Trạng thái tổ chức được chuyển từ 'Tạm dừng' sang 'Hoạt động'.
Đối Mỗi id vận động:
- Enable Campaign Status thả xuống.
- Giữ nguyên trạng thái.
Đây là mã (xin vui lòng bỏ qua các bảng!):
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>
Cần phải có một cách dễ dàng hơn và đơn giản hơn. Mới với jQuery, nhưng chọn nó càng nhanh càng tốt Cảm ơn sự giúp đỡ của bạn!
Xem Fiddle: http://jsfiddle.net/riverecho/40087wdb/8/
Và như vậy câu hỏi của bạn là gì? Đặc biệt? –
Mã ở trên đang hoạt động nếu chỉ có 1 id chiến dịch. Tuy nhiên, khi có nhiều chiến dịch, mã ở trên chỉ áp dụng trường hợp cuối cùng cho tất cả các chiến dịch. Làm cách nào tôi có thể thay đổi điều này để áp dụng cho từng Id chiến dịch riêng lẻ? Tôi cũng sẽ cập nhật bài đăng đầu tiên. – riverecho
bạn có thể sử dụng [.each()] (https://api.jquery.com/each/) – dippas