Home > OS >  How can I make user input case insensitive in an HTML Form in Apps Script?
How can I make user input case insensitive in an HTML Form in Apps Script?

Time:03-22

I have made a custom function on Google Sheets that allows the user to see how much they have spent on an expense.

Here is the example output: Example output

The HTML sidebar:

HTML Sidebar

Here is the JavaScript function:

function perCentBrand(brand){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var values = sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues();
  var total = 0;
  var sum = 0;
  values.forEach(function(row){
    total =row[1];
    if (row[6]==brand){sum =row[1]}
  })
  var val = "You spent a total of "   sum   " on "   brand   " out of "   total   " ."   " Additionally, "   (sum/total)*100   "%"    " of your income has been spent on "   brand; 
  var ui = SpreadsheetApp.getUi();
  ui.alert(val)
}

And here is the HTML form code:

    <form onsubmit="runFunc()">
      <input class = "u-full-width " id="brand" type = "text" placeholder="Enter brand name">

    <div  style="display:flex; justify-content: center">
      <button type="submit" >Submit</button>
    </div>
    </form>

I have read about the toLowerCase() and the toUpperCase() methods but I am unsure if these should be included to make the user input case insensitive.

Thanks in advance.

CodePudding user response:

function perCentBrand(brand){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var values = sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues();
  var total = 0;
  var sum = 0;
  values.forEach(function(row){
    total =row[1];
    if (row[6].toLowerCase() == brand.toLowerCase()){sum =row[1]}
  })
  var val = "You spent a total of "   sum   " on "   brand   " out of "   total   " ."   " Additionally, "   (sum/total)*100   "%"    " of your income has been spent on "   brand; 
  var ui = SpreadsheetApp.getUi();
  ui.alert(val)
}

CodePudding user response:

I'm assuming you mean "make user input case insensitive" regarding your if-statement, so I would control for case there if (row[6].toLowerCase()==brand.toLowerCase()){sum =row[1]}.

  • Related