jQuery UI Widgets › Forums › Lists › ListBox › Problem while checking if value is changed by user or programm
Tagged: Angular listbox, bootstrap listbox, differentiate user select, javascript listbox, jQuery ListBox, jqwidgets listbox, jqxListBox
This topic contains 2 replies, has 2 voices, and was last updated by David_D 8 years, 12 months ago.
-
Author
-
Hello,
I stumbled upon a little problem here and i hope you can give me a hint to solve it.I have 2 Listboxes. The first is a List of Tasks and the second one a list of Status’ belonging to the Tasks. When I change the Task the Status of the Task is shown to the User.
var userselect =true; $("#Listview_Task").on('select', function (event) { userselect = false; var value_TaskId = $("#Listview_Task").val(); //get task Status from DB $.ajax({ url: "@Url.Action("get_Task_filtered")", type: "POST", data: { TaskId: JSON.stringify(value_TaskId)}, datatype: 'json', success: function (result) { var source = result; var DB_Task = source[0] $("#Listview_Status").jqxListBox('selectItem', DB_Task.Status); //doesn't trigger listbox changed event for status listbox $("#Listview_Aufgabe").jqxListBox('focus'); } }) userselect = true; //listbox for status listbox changed event triggered here });
The User can change the Listboxstatus and wirte it to the Database to finish a task. I want to differentiate if the status is changed by code or user and therefore I use the userselect boolean.
$("#Listview_Status").on('change', function (event) { var val = $("#Listview_Status").jqxListBox('val'); if ((val == 3 || val == 4) && (userselect)) { if (confirm('finish Task?')) { if ($("#Listview_Task").val() == "") { alert("No Task to finish selected!"); } else { //Write new Task Status to DB } } }
But userselect is always true and I dont know why. Why is the Listview_Status event triggered when the listview_Task select event is finished and not earlier when I change the selected Item of Listview_Status within the Listview_Task select event?
Hello David_D,
Everything looks ok.
If there is not make settings about asynchronous query. (by default)
This row userselect = true; will be executed before triggered'change'
event of$("#Listview_Status")
.
Would you try to moveuserselect = true;
in success of the ajaxBest Regards,
Hristo HristovjQWidgets team
http://www.jqwidgets.comHello Hristo,
sorry for the late response and thanks for your help. The problem was indeed the asynchronous setting. By setting async:false in the ajax request the changed-event was triggered when desired.Thank you very much.
-
AuthorPosts
You must be logged in to reply to this topic.