2015-12-12 91 views
0

我的ajax腳本有點問題,當你自己選擇下拉列表中的值時,腳本工作正常。但是當你點擊提交時,它會把值放到GET中。當你去「http://script.domain?prov=1」(它觸發下拉選定的值)ajax腳本它不工作(我認爲這是因爲。(改變),當它的價值是預先選定它不會改變,所以腳本不會沒有反應)。Ajax Select with preselected value

所以我需要腳本在頁面加載時自動運行,並檢查#prov的dropbox值。

這裏是鏈接https://jsfiddle.net/gfzd5aa1/1/

HTML

<form action="" method="get"> 
<label for="prov">Provincia: </label> 
<select name="prov" id="prov" class="form-control"> 
<option value="0">Selecciona la provincia</option> 
    {% for provincia in provincias %} 
    <option value="{{ provincia.id }}" {% if get.prov == provincia.id %} selected {% endif %} > {{ provincia.name }} </option> 
{% endfor %} 
</select> 

<label for="zona">Provincia: </label> 
<select name="zona" id="zona" class="form-control"> 

</select> 
</form> 

在那裏, 「省報」 選擇字段觸發Ajax來填充 「卵」 選擇。

$('#prov').on('change', function() { 
var self = $(this); 

$.ajax({ 
    url: 'http://localhost:8888/casas/public/ajax-prov', 
    type: 'GET', 
    data: { id: self.val() }, 
    dataType: 'json', 
    success: function(response){ 
     var $zona = $("#zona"); 
     $zona.empty(); // remove old options 

     $("#zona").append('<option value="0">Seleciona la Zona</option>'); 
     $.each(response.prov, function(i, state) { 

      $("#zona").append('<option value="'+ state.id +'">' + state.name + '</option>'); 

     }); 

    } 

}); 
}); 

我的JavaScript技能是非常基本的,如果你能幫助我,讓它工作,我會感激它。

+0

你能CONSOLE.LOG(響應)在您的要求,並在此粘貼在回答什麼是你ajax-prov – Svetoslav

+0

當手動使用它時,它會返回一個對象,但與GET'prov'變量一起使用時,它不返回任何內容。它就像ajax一點都沒有觸發。 – abonive

回答

0

您沒有發送prov變量與您的獲取請求,但登記id。 試試這個:

... 
$.ajax({ 
    url: 'http://localhost:8888/casas/public/ajax-prov', 
    type: 'GET', 
    data: { prov: self.val() }, 
... 

編輯: 小姐明白的問題,因此最終響應是

$(document).ready(function() { if ($('#prov').val() != "0") $('#prov').change() }); 
+0

我知道,但我想要GET「prov」變量來觸發選擇第一個dropbox中的值和來自該dropbox的值來觸發ajax。喜歡它當你手動在Dropbox中選擇字段時工作。查看jsfiddle我添加html它更有意義。 – abonive

+0

對不起,但你是什麼意思「我希望GET」prov「變量觸發」。另外,爲什麼你的問題上有這個URL「http://script.domain?prov = 1」?我運行你的代碼,並提出請求。 –

+0

讓我解釋一下,?prov =「value」會觸發選擇#prov什麼具有值== to?prov ='value'的選項被選中。但是當你到達?prov ='value'的鏈接時,ajax不會被觸發。因爲該值已經預選。它不會填充#zona下拉菜單。 只有在您手動更改下拉值時纔有效。並多數民衆贊成我的問題 – abonive