javascript - GAS button or input[submit] keeps refreshing page? why? -


i've started new google app script , created simple form jquery behind handle validation, shown below.

but whenever click on <button> created, refreshes page. same thing happens <input type='submit'> button.

any ideas why doing , how prevent it?

<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">  <!-- https://developers.google.com/apps-script/add-ons/css -->    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css">  <!-- css package jquery datepicker  -->    <div>    <h1>use form below enter new entry calendar</h1>        <table>    <form>          <tr>        <td>            title: <input type='input' id='title' />        </td>        <td>            description:<input type='input' id='description' />        </td>       </tr>                    <tr>        <td>            date: <input type='text' id='date_choice' value="" />        </td>        <td>            <label for="select">time of day</label>            <select id="select">              <option value='before' >before school starts</option>              <option value='morning' selected>morning</option>              <option value='lunchtime'>lunchtime / afternoon</option>              <option value='afterschool'>after school has ended</option>            </select>         </td>     </tr>                    <tr>       <td colspan='2' style='text-align: center;'>          <button class="create">insert</button>        </td>     </tr>  </form>  </table>  </div>    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">  </script>  <script src="//code.jquery.com/ui/1.11.3/jquery-ui.js"></script>  <script>  $(document).ready(function(){    $( "#date_choice" ).datepicker({      dateformat: "dd/mm/yy"    });        $("#create").click(insertintocal);  });    function insertintocal(){        var title = document.getelementbyid("title").value;     var descr = document.getelementbyid("description").value;     var date = document.getelementbyid("date_choice").value;     var time = document.getelementbyid("select").value;         alert(title); alert(descr); alert(date); alert(time);  }  </script>

you've made simple html / jquery mistake. button has class, no unique id:

<button class="create">insert</button>         ^^^^^^^^^^^^^^ 

...yet attempt bind click() handler specific element id:

$("#create").click(insertintocal);    ^^^^^^^ 

as result, insertintocal() never gets called.

you want class styling, keep add id so:

<button class="create" id="insert-entry">insert</button> 

then modify binding use new id:

$("#insert-entry").click(insertintocal); 

you can try out in snippet below.

wrt <input type='submit'> - not work in google apps script, there's no post handler waiting form submissions. instead, need keep extending insertintocal() handler use google.script.run send form contents server-side handler.

<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">  <!-- https://developers.google.com/apps-script/add-ons/css -->    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css">  <!-- css package jquery datepicker  -->    <div>    <h1>use form below enter new entry calendar</h1>        <table>    <form>          <tr>        <td>            title: <input type='input' id='title' />        </td>        <td>            description:<input type='input' id='description' />        </td>       </tr>                    <tr>        <td>            date: <input type='text' id='date_choice' value="" />        </td>        <td>            <label for="select">time of day</label>            <select id="select">              <option value='before' >before school starts</option>              <option value='morning' selected>morning</option>              <option value='lunchtime'>lunchtime / afternoon</option>              <option value='afterschool'>after school has ended</option>            </select>         </td>     </tr>                    <tr>       <td colspan='2' style='text-align: center;'>          <button class="create" id="insert-entry">insert</button>        </td>     </tr>  </form>  </table>  </div>    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">  </script>  <script src="//code.jquery.com/ui/1.11.3/jquery-ui.js"></script>  <script>  $(document).ready(function(){    $( "#date_choice" ).datepicker({      dateformat: "dd/mm/yy"    });        $("#insert-entry").click(insertintocal);  });    function insertintocal(){        var title = document.getelementbyid("title").value;     var descr = document.getelementbyid("description").value;     var date = document.getelementbyid("date_choice").value;     var time = document.getelementbyid("select").value;         alert(title); alert(descr); alert(date); alert(time);  }  </script>


Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -