Changeset - 4f8efb27e2ab
[Not reviewed]
default
0 1 0
Nathan Brink (binki) - 15 years ago 2011-03-21 00:50:08
ohnobinki@ohnopublishing.net
Turn <enter> in a course_id textfield input into a noop to prevent accidental form submission during autocomplete.
1 file changed with 22 insertions and 0 deletions:
0 comments (0 inline, 0 general)
scripts/scheduleInput.js
Show inline comments
 
@@ -243,24 +243,46 @@ function add_sections(cnum, data)
 
	     * content, first remove the empty course.
 
	     */
 
	    if (name.length && slate_permutate_course_free != -1)
 
		course_remove(slate_permutate_course_free);
 

	
 
		sectionsOfClass[classNum] = 0; // Initialize at 0
 
		jQuery('#jsrows').append('<tr id="tr-course-' + classNum + '" class="class class' + classNum + ' pclass' + classNum + '"><td class="nameTip"><input type="text" id="input-course-' + classNum + '" class="classRequired defText className'+classNum+' className" title="Class Name" name="postData[' + classNum + '][name]" value="' + name + '" /></td><td colspan="10"></td><td class="tdInput"><div class="deleteClass"><input type="button" value="Remove" class="gray" /></div></td><td class="none"><button type="button" class="addSection gray">+</button></td></tr>');
 

	
 
		/* store classNum as course_i into the <tr />: */
 
		jQuery('#tr-course-' + classNum).data({course_i: classNum});
 

	
 
		var class_elem = jQuery('.className' + classNum);
 

	
 

	
 
		/*
 
		 * Don't let the user accidentally submit the form by
 
		 * pressing <ENTER>. Instead, select the first
 
		 * autocomplete result if possible.
 
		 */
 
		class_elem.bind('keyup keydown', function(e)
 
				  {
 
				      /* <ENTER> is 13 */
 
				      if (e.which == 13)
 
					  {
 
					      /*
 
					       * The user has pressed enter before selecting an autocomplete entry, which means the
 
					       * form will be submitted without his expecting it to be. We yet need code
 
					       * to figure out what the first autocomplete result is :-/.
 
					       */
 
					      return false;
 
					  }
 
				      return true;
 
				  });
 

	
 
		class_elem.autocomplete({ source: 'auto.php' });
 
		class_elem.bind('autocompleteselect', {class_num: classNum, class_elem: class_elem},
 
			function(event, ui)
 
			    {
 
				if (!ui.item)
 
				    return;
 

	
 
				if (ui.item.value.indexOf('-') != -1)
 
				    {
 
					jQuery.ajax(
 
						    {
 
							url: 'auto.php',
0 comments (0 inline, 0 general)