2016-03-01 101 views
0

我有一個窗體和一個jQuery函數,如果用戶更改了html選擇字段,則會觸發它。該函數收集所需的所有信息,並將其發佈到帶有ajax帖子的php腳本中。 我想用一個新功能來擴展此功能:如果選定的值等於預定義值,我想用兩個按鈕顯示一個對話框。用戶需要點擊其中一個按鈕,如果他確實將新信息附加到帖子中。 一個簡單的例子: 的選擇有3個選項: - 檸檬 - 香蕉 - 蘋果ajax之前jQuery對話框

如果用戶選擇了檸檬或香蕉,腳本將不採取進一步措施的信息到服務器。但是如果他選擇蘋果,我需要一個額外的對話,因爲我想問他是否需要紅色或綠色。它需要附加到我想要發送到服務器的信息。

你能幫助我嗎?我應該怎麼做?

我只有第一部分:

$('select.myList').change(function() 
{ 
    var e = $(this) 
    var val = $(this).val(); 
    var id = $(this).attr('data-id') 

    var url = 'index.php?process' 
    $.ajax({ 
     type: "POST", 
     url: url, 
     data: { id: id, val: val }, 
     success: function(data){ 
      var o = $.parseJSON(data); 
      if(o.error) 
      { 
       console.log('error:' + o.message); 
      } else 
      { 
       console.log('success:' + o.message); 
      } 

      return false; 
     } 
     }) 

    return false 
}) 
+1

你可以張貼一些代碼,你已經嘗試? – Neps

+0

我只有第一部分,更新了這個問題 – user2409690

回答

0

首先,我會說你應該和你的變量名非常小心。如果可以避免的話,永遠不要使用e作爲變量。我也會改變idval

在任何情況下,你應該能夠使用beforeSend財產阿賈克斯:http://api.jquery.com/jquery.ajax/,所以假設「蘋果」將成爲元素的val

$.ajax({ 
    type: "POST", 
    url: url, 
    data: { id: id, val: val }, 
    beforeSend: function() { 
     if (val === 'Apple') { 
      //do stuff 
     } 
    }, 
    // rest of ajax call 
} 
+0

太好了,我以前沒注意過在API中發送。你能幫我解答對話嗎? :/ – user2409690

+0

我想我會問一個明顯的問題 - 不是在發送之前試圖處理數據,有沒有理由不能在選擇列表中添加'Apple - Green'和Apple - Red'?在選擇變更時提交表單,然後停下來詢問更多信息,這感覺有點過分。最終,我認爲我建議的解決方案應該是將價值修改爲其中之一,那麼爲什麼不從他們開始,如果這是您需要的信息? – twill

+0

這只是一個簡單的例子,真正的東西是複雜得多:) – user2409690