title: Grails non null params reaching controller as null?
body: <p>I am having some trouble trying to get params from my GSP to my controller from a Javascript click handler that looks like this:</p>
  
  <pre><code>$('#save').click(function () { 
          var uniqueId = "${recordToEdit.uniqueId}";
          var secondaryId = "${recordToEdit.secondaryId}";
          console.log(removedYellowIssues);
          &lt;g:remoteFunction controller="customer" 
                              action="saveModifiedIndividualRecord"
                              params='{uniqueId: uniqueId, 
                                      secondaryId: secondaryId,
                                      yellowIssuesRemoved: removedYellowIssues,
                                      redIssuesRemoved: removedRedIssues}'/&gt;
      });
  </code></pre>
  
  <p>When the "save" button is pressed this is what I see in the javascript console:</p>
  
  <pre><code>["No address provided."] 
  </code></pre>
  
  <p>so you can see the the 'removedYellowIssues' list is NOT empty. It's a Javascript list containing one string. However, here is what my controller thinks:</p>
  
  <pre><code>&lt;&gt;&lt;&gt;&lt;&gt; Parameters ***:
  &lt;&gt;&lt;&gt;&lt;&gt; uniqueId: 239400B
  &lt;&gt;&lt;&gt;&lt;&gt; secondaryId: 1
  &lt;&gt;&lt;&gt;&lt;&gt; Red issues removed: null
  &lt;&gt;&lt;&gt;&lt;&gt; Yellow issues removed: null
  </code></pre>
  
  <p>Here is the controller action:</p>
  
  <pre><code>def saveModifiedIndividualRecord() {
          println "&lt;&gt;&lt;&gt;&lt;&gt; Parameters ***: "
          println "&lt;&gt;&lt;&gt;&lt;&gt; uniqueId: " + params.uniqueId
          println "&lt;&gt;&lt;&gt;&lt;&gt; secondaryId: " + params.secondaryId
          println "&lt;&gt;&lt;&gt;&lt;&gt; Red issues removed: " + params.redIssuesRemoved
          println "&lt;&gt;&lt;&gt;&lt;&gt; Yellow issues removed: " + params.yellowIssuesRemoved
      }
  </code></pre>
  
  <p>Here is more of the Javascript code containing the above save button snippet.</p>
  
  <pre><code>var currentYellowIndex = 0;
      var allYellowIssues = $('#allYellowIssues'); // The unordered list 'ul'
      var removedYellowIssues = []; // An array to keep track of issues removed
      if (allYellowIssues.length) { // If there are issues to be displayed
        var yellowElements = document.getElementsByName('yellowIssue');
        var yellowListSize = yellowElements.length;
        yellowElements[currentYellowIndex].className = "display";
        $('#yellowStartIndex').html(currentYellowIndex + 1);      
        $('#yellowSizeIndex').html(yellowListSize);
  
        $('#nextYellowIssue').click(function () {
          if (currentYellowIndex &lt; yellowListSize-1) {
              yellowElements[currentYellowIndex++].className = "display-none";
              yellowElements[currentYellowIndex].className = "display";
              $('#yellowStartIndex').html(currentYellowIndex + 1);    
          }
       });
  
        $('#previousYellowIssue').click(function () {
          if (currentYellowIndex &gt; 0) {
              yellowElements[currentYellowIndex--].className = "display-none";
              yellowElements[currentYellowIndex].className = "display";
              $('#yellowStartIndex').html(currentYellowIndex + 1);    
          }
       });
  
       $('#clearYellowFlag').click(function () {
          removedYellowIssues.push(yellowElements[currentYellowIndex].innerHTML);
          yellowElements[currentYellowIndex].className = "display-none";
          yellowElements[currentYellowIndex].remove();
          yellowListSize = yellowElements.length;
          if (yellowListSize == 0) 
              $('#yellowIssues').hide();
          else {
              currentYellowIndex = 0;
              yellowElements[currentYellowIndex].className = "display";
              $('#yellowStartIndex').html(currentYellowIndex + 1);      
              $('#yellowSizeIndex').html(yellowListSize);
          }
        });
      }
  
      $('#save').click(function () { 
          var uniqueId = "${recordToEdit.uniqueId}";
          var secondaryId = "${recordToEdit.secondaryId}";
          console.log(removedYellowIssues);
          &lt;g:remoteFunction controller="customer" 
                              action="saveModifiedIndividualRecord"
                              params='{uniqueId: uniqueId, 
                                      secondaryId: secondaryId,
                                      yellowIssuesRemoved: removedYellowIssues,
                                      redIssuesRemoved: removedRedIssues}'/&gt;
      });
  </code></pre>
  
  <p>The last part of the GSP is where the save button itself is defined as follows:</p>
  
  <pre><code>&lt;br&gt;
  &lt;button id="save"&gt; Save &lt;/button&gt;&amp;nbsp&amp;nbsp&amp;nbsp
  &lt;button id="cancel" class="close" type="button"&gt; Cancel &lt;/button&gt;
  </code></pre>