2017-08-24 67 views
0

我想通過Ajax將所有多選項目寫入服務器端數據庫表中。我不想調用函數並在每個選擇/取消選擇操作上寫入。我想讓用戶選擇並取消選擇所有需要的選項,然後我想進行ajax調用並將結果寫入數據庫一次。如何捕獲Multiselect選項列表中的所有選定項目以及使用jQuery進行捆綁銷售

我想在jQuery中處理這個。

我有Ajax腳本和服務器端數據庫更新腳本工作 - 沒問題。

捕獲多選項目並進行ajax調用的最佳方法是什麼?

焦點離開選擇框時會是什麼?或者其他一些更好的方法?

謝謝你指點我正確的方向。

修訂#1

它看起來像.change()是去這裏...不同之處,當然,添加一個按鈕,在回答提出的唯一途徑。按鈕選項不是我希望與應用程序一起使用的方式。我似乎無法在我的<select>元素上捕獲.focus().blur().focusout()

修訂#2

嘗試這個 - 不工作

$('select.driverItems').on('blur',function(){ 
    alert('focused out'); 
    console.log($(this).val()); 
    }); 

嘗試這個 - 不工作

$('select#driverIDs_0').on('blur',function(){ 
    alert('focused out'); 
    console.log($(this).val()); 
    }); 

嘗試這樣 - 它的作品!

$('select.driverItems').change(function() { 
    alert('focused out'); 
    console.log($(this).val()); 
    }); 

回答

0
  • 然後讓用戶選擇任何他想做的
  • 在HTML中
  • 添加一個按鈕,當按下按鈕
  • 獲取jQuery的所有選定值
  • 並作出阿賈克斯調用並保存值
+0

好的,謝謝你的建議。我更喜歡按照我描述的方式來做,因爲我並排了3種不同的選擇選項,我不想添加更多的按鈕。我正在研究'focusout()'作爲可能的解決方案。不知道這是否是最好的,但我仍在嘗試。 –

1

從技術上講,沒有辦法kn因爲用戶將離開選擇過程(填充其他字段,替代選項卡,選擇要閱讀的消息等)還有其他因素會觸發失去焦點的事件。

儘可能多的,你也不希望有很多的往返服務器,所以你有一個好主意不要更新選擇/取消選擇。

只有合理的方式才能做到這一點,而不會產生不必要的結果,那就是添加一個觸發ajax的按鈕。

+0

謝謝@Nathan。 [第1部分] jQuery中有沒有像「'.lostFocusEvent()'」這樣的東西,我可以試試?我現在正在使用'.on('change',...)'來實現,但我寧願在每次點擊鼠標時都點擊服務器。但是,如果我唯一的解決方案是添加另一個按鈕,我會在每次點擊鼠標時擊中服務器。從可用性的角度來看,我的客戶會因爲Web表單已經非常複雜並且包含數十個數據收集點而不得不點擊一個提交按鈕而感到怪異。 –

+0

[第2部分]我需要實現3個單獨的'.focusout()'實例來將多選值發送回服務器,所以我不想用3個額外的提交按鈕來結婚。謝謝。 –

+1

@ H.Ferrence是的,你可以使用'.on('blur',函數(evt,args){...})https://api.jquery.com/blur/ – Nathan

相關問題