title: Jquery Mobile: Forcing refresh of content
body: <p>I have a big problem: I have a <code>listview</code> and each item links to page <code>#concorsi</code>. When I click on a link the URL become <code>#concorsi?numero=1</code> because I'm fetching the form number 1 from a JSON.</p>
  
  <p>When I click the first time it's all OK. Each input is visualized with jQuery Mobile classes but if I come back and after go into the same link the code don't refresh. 
  The header is well visualized but the content no. How can I force the refresh of the div content?</p>
  
  <p>These are my JavaScript functions:</p>
  
  <pre><code>&lt;script type="text/javascript"&gt;
  $(document).bind( "pagebeforechange", function( e, data ) {
      // We only want to handle changePage() calls where the caller is
      // asking us to load a page by URL.
  
      if ( typeof data.toPage === "string" ) {
          // We are being asked to load a page by URL, but we only
          // want to handle URLs that request the data for a specific
  
          var u = $.mobile.path.parseUrl( data.toPage ),
              re = /^#concorso/;
          if ( u.hash.search(re) !== -1 ) {
              // We're being asked to display the items for a specific category.
              // Call our internal method that builds the content for the category
              // on the fly based on our in-memory category data structure.
              showConcorso( u, data.options);
              // Make sure to tell changePage() we've handled this call so it doesn't
              // have to do anything.
              e.preventDefault(); 
          }
      }
  });
  &lt;/script&gt;
  </code></pre>
  
  <p>And <code>showConcorso()</code>L</p>
  
  <pre><code>function showConcorso( urlObj, options )
  {
      document.getElementById('conccont').innerHTML="";
      var concorsoNum = urlObj.hash.replace( /.*numero=/, "" ),
  
          // Get the object that represents the category we
          // are interested in. Note, that at this point we could
          // instead fire off an ajax request to fetch the data, but
          // for the purposes of this sample, it's already in memory.
          concorso = obj.concorsi[ concorsoNum ],
  
          // The pages we use to display our content are already in
          // the DOM. The id of the page we are going to write our
          // content into is specified in the hash before the '?'.
          pageSelector = urlObj.hash.replace( /\?.*$/, "" );
  
      if ( concorso ) {
          // Get the page we are going to dump our content into.
          var $page = $( pageSelector ),
  
              // Get the header for the page.
              $header = $page.children( ":jqmData(role=header)" ),
  
              // Get the content area element for the page.
              $content = $page.children( ":jqmData(role=content)" ),
              $footer = $page.children( ":jqmData(role=footer)" );
  
  
  
          // Find the h1 element in our header and inject the name of
          // the category into it.
          $header.find( "h1" ).html(concorso['title']);
  
          markup=document.createElement('form');
          markup.setAttribute('action','#home');
          markup.setAttribute('method','POST');
          markup.id="concForm";
          markup.onchange="alert (test)";
          items=obj.concorsi[concorsoNum].elementi;
  
          for(field in items) {
              nest=items[field];
              nest=obj.campi[nest];
              switch(nest.type){
                  case "free": markup.appendChild(createFree(nest));
                              break;
                  case "text": markup.appendChild(createText(nest));
                              break;
                  case "textarea": markup.appendChild(createTextArea(nest));
                              break;
                  case "switch": markup.appendChild(createSwitch(nest));
                              break;
                  case "switchcust": markup.appendChild(createSwitchCustom(nest));
                              break;
                  case "slider": markup.appendChild(createSlider(nest));
                              break;
                  case "select": markup.appendChild(createSelect(nest));
                              break;
                  case "checkbox": markup.appendChild(createCheckbox(nest));
                              break;
                  case "radio": markup.appendChild(createRadio(nest));
                              break;
                  case "reset": markup.appendChild(createButton(nest));
                              break;
                  case "submit": markup.appendChild(createButton(nest));
                              break;
              }
          }
  
          // Inject the category items markup into the content element.
          $content.html( markup );
  
          // Pages are lazily enhanced. We call page() on the page
          // element to make sure it is always enhanced before we
          // attempt to enhance the listview markup we just injected.
          // Subsequent calls to page() are ignored since a page/widget
          // can only be enhanced once.
  
          $page.page();
  
  
          // We don't want the data-url of the page we just modified
          // to be the url that shows up in the browser's location field,
          // so set the dataUrl option to the URL for the category
          // we just loaded.
          options.dataUrl = urlObj.href;
  
          // Now call changePage() and tell it to switch to
          // the page we just modified.
          $.mobile.changePage( $page, options );
      }
  }
  </code></pre>