首先一些重要的信息。我無法更改所使用的通話,代碼,功能等任何內容。所以底線是我必須使用一種解決方法。jquery在ajax調用後繼續上課
好的我有一個窗體,有一些字段和下拉菜單。 加載該表單時,我用一些jQuery隱藏了一個特定的字段。當值與數組中的某個值相匹配時,該字段將被隱藏。我面臨的問題是,當我們使用dropdown
時,對外部服務(對於國家/地區)發出json調用,然後表單正在更新。
由於我無法獲得更新表單後,成功的JSON調用的代碼,我需要找到一些東西來檢查是否一切都完成加載,如果是這樣,再次隱藏我的具體領域。
清楚爲了讓事情:
<div class="checkout-shipment-methods hidden">
<input id="EuPack" name="shipment_method" value="EuPack" type="radio">
<label for="EuPack">Delivered at home</label>
</div>
<div class="checkout-shipment-methods">
<input id="Pack" name="shipment_method" value="Pack" type="radio">
<label for="Pack">Delivered at work</label>
</div>
<select id="billing_address-country" name="billing_address[country]">
<option value="be" selected="selected">België</option>
<option value="dk">Denemarken</option>
<option value="de">Duitsland</option>
</select>
input
現在被隱藏。當我更改select
時,表格被更新並且類別hidden
被刪除。
所以我想,以檢查是否這些調用由若然添加類hidden
一次。
像這樣:
$(function(){
var a = [ 'FP32PE4','FP32LE4' ];
var b = [ 'FP32PE1','FP32PE4' ];
$.each(a, function(key, value) {
var index = $.inArray(value, b);
if(index != -1) {
var $id = $('.checkout-shipment-methods:first-of-type');
$id.addClass('hidden');
localStorage.setItem("selectedolditem", $id);
$.ajax({
url: "url-to-link-in-image/nl/checkout/onestep/details/",
beforeSend: function(xhr) {
xhr.overrideMimeType("text/plain; charset=x-user-defined");
}
}).
then(function(data, textStatus, jqXHR) {
console.log('success');
var selectedolditem = localStorage.getItem('selectedolditem');
if (selectedolditem != null) {
$('.checkout-shipment-methods:first-of-type').addClass("hidden");
}
},
function(jqXHR, textStatus, errorThrown) {
console.log('fail')
});
}
});
});
是,即使可能嗎?
「那可能嗎?」。那麼,你寫了它......你嘗試過嗎?它有用嗎? – ADyson
我理解你好嗎,你需要一種方法來改變某些元素的CSS類,在服務調用完成後,從元素中刪除'hidden'? –
@ADyson:哇哈哈....是的,我試過了。以上代碼在頁面加載時隱藏元素。但是,在改變選擇後,它將刪除隱藏的類 – Meules