2017-10-25 4 views
-2

HTML Webアプリケーションフォームにいくつかの計算機能を追加しましたが、ロジックは完全にうまく機能していますが、既に入力済みのタブで修正を加える必要がある場合、単価、数量にいくつかの数字を更新し、再び HTML WebフォームでSUM計算の問題を解決する方法

function doGet(e) { 
 
    return HtmlService.createHtmlOutputFromFile('index').setTitle("Testing"); 
 
} 
 

 

 
function getOAuthToken() { 
 
    DriveApp.getRootFolder(); 
 
    Logger.log(ScriptApp.getOAuthToken()) 
 
    return ScriptApp.getOAuthToken(); 
 

 
} 
 

 

 
function getCurrentUserEmail() 
 
{ 
 
    var email={'email':Session.getActiveUser().getEmail()};//returned as an object 
 
    return email; 
 
} 
 

 

 
function saveDate(data) { 
 
    var openSpreadSheet = SpreadsheetApp.openById("1fA5qPNfoegZoEpl1al3XudNEyvomgAbko5XDBA_i7aw").getSheetByName("Sheet1"); 
 
    var sheetHeader = openSpreadSheet.getRange(1, 1, 1, openSpreadSheet.getLastColumn()).getValues()[0]; 
 
    Logger.log(sheetHeader); 
 
    var arrayToSave = []; 
 
    data["Timestamp"] = Utilities.formatDate(new Date, "IST", "dd/MM/yyyy hh:mm:ss"); 
 
    data["Email Address"] = Session.getActiveUser().getEmail().toString(); 
 
    for (i = 0; i < sheetHeader.length; i++) { 
 
     if (Object.keys(data).indexOf(sheetHeader[i]) != -1) { 
 
      arrayToSave[i] = data[sheetHeader[i]]; 
 
     } else { 
 
      arrayToSave[i] = ""; 
 
     } 
 
    }  
 
    openSpreadSheet.appendRow(arrayToSave); 
 
} 
 

 
function include(fileName) { 
 
    return HtmlService 
 
    .createHtmlOutputFromFile(fileName) 
 
    .getContent(); 
 
} 
 

 
function initPicker() { 
 
    return { 
 
    locale: 'en', 
 
    token: ScriptApp.getOAuthToken(), 
 
    origin: "https://script.google.com", 
 
    parentFolder: "0B0Oj_1v-CAzNa2djbEQ1UjdzeDA", 
 
    developerKey: "AIzaSyD9UvBsf_wdqxpTFgxzWhRtaI-VfITb_RY", 
 
    dialogDimensions: { 
 
     width: 600, 
 
     height: 425 
 
    }, 
 
    picker: { 
 
     viewMode: "LIST", 
 
     mineOnly: true, 
 
     mimeTypes: "image/png,image/jpeg,image/jpg", 
 
     multiselectEnabled: true, 
 
     allowFolderSelect: true, 
 
     navhidden: true, 
 
     hideTitle: true, 
 
     includeFolders: true, 
 
    } 
 
    }; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
 
<title>123</title> 
 

 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 
 
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
 

 
<!--Icons--> 
 
\t <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> 
 
\t <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
    
 

 
<!--[if lt IE 9]> 
 
<script src="js/html5shiv.js"></script> 
 
<script src="js/respond.min.js"></script> 
 
<![endif]--> 
 

 
<style> 
 
    /*.form-group.num, .form-group.txt { 
 
\t margin-bottom:0; width:100px; display:block; clear:both; margin:0 auto} 
 
\t .form-group.txt { width:inherit;}*/ 
 
\t th { text-align: center; 
 
    background-color: #e3f2fd;color:#263238 !important} 
 
\t tr.one th{ 
 
    background-color: #f5f5f5;color:#263238 !important} 
 
\t 
 
\t \t 
 
.navbar-brand { 
 
    padding: 0px; 
 
} 
 
.navbar-brand>img { 
 
    height: 100%; 
 
    padding: 15px; 
 
    width: auto; 
 
} 
 
.navbar-default { background-color:#0a3474} 
 
.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus, .navbar-default .navbar-nav>.active>a:hover { 
 
    color: #0a3474; 
 
    background-color: #FFF; 
 
} 
 
.navbar-default .navbar-nav>li>a{ 
 
\t color:#fff} 
 
\t .navbar-default .navbar-nav>li>a:focus, .navbar-default .navbar-nav>li>a:hover{ 
 
\t \t color: #0a3474; 
 
    background-color: #FFF; 
 
\t \t } 
 
.gap10{ 
 
\t height:10px; display:block; clear:both;} 
 

 
th { 
 
    text-align: center; 
 
    background-color: #009e16; 
 
    color: #fff !important;} 
 

 
\t \t 
 
    </style> 
 

 

 
<style> 
 

 
    #attachmentTable{ 
 
    background: white; 
 
    } 
 
    tr th,tr td{ 
 
    text-align: center; 
 
    } 
 
</style> 
 
</head> 
 

 
<body> 
 
<div class="container"> 
 
<div class="row"> 
 
    <nav class="navbar navbar-default"> 
 
    <div class="container-fluid"> 
 
     <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar1"> 
 
      <span class="sr-only">Toggle navigation</span> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
     </button> 
 
     <a class="navbar-brand" href=""><img src="" alt="Dispute Bills"> 
 
     </a> 
 
     
 
     </div> 
 
       <ul class="nav navbar-nav navbar-right"> 
 
     <li><a href="#"><span class="glyphicon glyphicon-user"></span> : <h9 id="email"></h9></a></li> 
 
     
 
    </ul> 
 
     </div> 
 

 
    </nav> 
 
    
 
    </div> 
 
    
 
</div> 
 

 

 
<hr> 
 
<form name="newpurchase" action="" method="post" enctype="application/x-www-form-urlencoded"> 
 
<div class="container"> 
 
    <table class="table table-bordered" style="width:65%;margin:0 auto"> 
 
    <thead> 
 
     <tr> 
 
     <th colspan="4">Procurement Request Form</th> 
 
     
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>Request Type \t </td> 
 
     <td> 
 
     <div class="form-group"> 
 
     <select name="supplier_name" class="form-control select" id="RequestType"> 
 
\t \t \t \t \t \t \t \t <option value="Supply">Supply</option> 
 
\t \t \t \t \t \t \t \t <option value="Service">Service</option> 
 
\t \t \t \t \t \t \t \t <option value="Software">Software</option> 
 
\t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t </select></div></td> 
 
     <td>Urgency</td> 
 
     <td> <div class="form-group"><select name="supplier_name" class="form-control select"id="Urgency" > 
 
\t \t \t \t \t \t \t \t <option value="Low">Low</option> 
 
\t \t \t \t \t \t \t \t <option value="Medium">Medium</option> 
 
\t \t \t \t \t \t \t \t <option value="High">High</option> 
 
\t \t \t \t \t \t \t \t <option value="Critical">Critical</option> 
 
\t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t </select></div></td> 
 
     </tr> 
 
     <tr> 
 
     <td>Requester For</td> 
 
     <td> <div class="form-group"><select name="supplier_name" class="form-control select" id="RequestFor" > 
 
\t \t \t \t \t \t \t \t <option value="Cost for Approval">Cost for Approval</option> 
 
\t \t \t \t \t \t \t \t <option value="PO Process">PO Process</option> 
 
\t \t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t </select></div></td> 
 
     <td>Currency</td> 
 
     <td> <div class="form-group"><select name="payment_mode" id="select" class="form-control select" > 
 
\t \t \t \t \t \t \t \t <option value="INR">INR</option> 
 
\t \t \t \t \t \t \t \t <option value="USD">USD</option> 
 
\t \t \t \t \t \t \t </select></div></td> 
 
     </tr> 
 
     <tr> 
 
     <td>Requester Name \t </td> 
 
     <td> 
 
<div class="form-group"><input type="text" name="contact_person" class="form-control input-md" id="RequesterName"/></div></td> 
 
     <td>Business User</td> 
 
     <td><input type="text" name="contact_person" class="form-control input-md" id="BusinessUser"/></td> 
 
     </tr> 
 
     <tr> 
 
     <td>Short Description:</td> 
 
     <td><textarea class="form-control input-md" id="ShortDescription" name="address_line2"></textarea></td> 
 
     <td>Business Reason:</td> 
 
     <td><textarea class="form-control input-md" id="BusinessReasonforRequestPurpose" name="address_line2"></textarea></td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div> 
 
<hr> 
 
<tr> 
 
<div class="container"> 
 
    <td><table id="productList" class="table table-bordered"> 
 
    
 
     <tr> 
 
     <th colspan="9">Requested Material/Service Details-Cost</th> 
 
     
 
     </tr> 
 
    
 
    <tbody> 
 
     <tr id="head"> \t 
 
     <td>SR No</td> 
 
     <td>Product/Material/ServiceDescription</td> 
 
     <td>Make & Model No</td> 
 
     <td>UOM</td> 
 
     <td>Unit Price</td> 
 
     <td>Quantity</td> 
 
     <td>Total Price \t </td> 
 
     <td>GST% \t </td> 
 
     <td>Total Price with GST \t </td> 
 
     </tr> 
 
     <tr> 
 
     <td align="center">1</td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="purchase_description" type="text" id="ProductMaterialServiceDescription1"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="on_hand" type="text" id="MakeModelNo1"></div></td> 
 
\t \t \t \t \t \t <td> <div class="form-group"><select class="form-control " name="productname" id="UOM1" > 
 
           <option value=""></option> 
 
           <option value="">Nos</option> 
 
\t \t \t \t \t \t \t \t <option value="">Set</option> 
 
\t \t \t \t \t \t \t \t <option value="">LS</option> 
 
           <option value="">Per MDY</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Month</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Year</option> 
 
\t \t \t \t \t \t \t </select></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md price" data-a-sign="` " data-w-empty="zero" type="text" id="UnitPrice1"name="price"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md qty" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="QTY1"name="qty"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md subtot" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="Price1"name="subtot"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md gst" data-a-sign="` " data-w-empty="zero" type="text" id="GST1" name="gst"/></div></td> 
 
         <td><div class="form-group"><input class="form-control input-md total" data-a-sign="` " data-w-empty="zero" type="text" id="TotalPrice1"name="total"/></div></td> 
 
         
 
     </tr> 
 
     <tr> 
 
<td align="center">2</td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="purchase_description" type="text" id="ProductMaterialServiceDescription2"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="on_hand" type="text" id="MakeModelNo2"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><select class="form-control " name="productname" id="UOM2" > 
 
           <option value=""></option> 
 
           <option value="">Nos</option> 
 
\t \t \t \t \t \t \t \t <option value="">Set</option> 
 
\t \t \t \t \t \t \t \t <option value="">LS</option> 
 
           <option value="">Per MDY</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Month</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Year</option> 
 
\t \t \t \t \t \t \t </select></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md price" data-a-sign="` " data-w-empty="zero" type="text" id="UnitPrice2"name="price"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md qty" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="QTY2"name="qty"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md subtot" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="Price2"name="subtot"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md gst" data-a-sign="` " data-w-empty="zero" type="text" id="GST2" name="gst"/></div></td> 
 
         <td><div class="form-group"><input class="form-control input-md total" data-a-sign="` " data-w-empty="zero" type="text" id="TotalPrice2"name="total"/></div></td> 
 
         
 
     </tr> 
 
     <tr> 
 
     <td align="center">3</td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="purchase_description" type="text" id="ProductMaterialServiceDescription3"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="on_hand" type="text" id="MakeModelNo3"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><select class="form-control " name="productname" id="UOM3" > 
 
           <option value=""></option> 
 
           <option value="">Nos</option> 
 
\t \t \t \t \t \t \t \t <option value="">Set</option> 
 
\t \t \t \t \t \t \t \t <option value="">LS</option> 
 
           <option value="">Per MDY</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Month</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Year</option> 
 
\t \t \t \t \t \t \t </select></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md price" data-a-sign="` " data-w-empty="zero" type="text" id="UnitPrice3"name="price"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md qty" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="QTY3"name="qty"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md subtot" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="Price3"name="subtot"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md gst" data-a-sign="` " data-w-empty="zero" type="text" id="GST3" name="gst"/></div></td> 
 
         <td><div class="form-group"><input class="form-control input-md total" data-a-sign="` " data-w-empty="zero" type="text" id="TotalPrice3"name="total"/></div></td> 
 
         
 
     </tr> 
 
     <tr> 
 
     <td align="center">4</td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="purchase_description" type="text" id="ProductMaterialServiceDescription4"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="on_hand" type="text" id="MakeModelNo4"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><select class="form-control " name="productname" id="UOM4" > 
 
           <option value=""></option> 
 
           <option value="">Nos</option> 
 
\t \t \t \t \t \t \t \t <option value="">Set</option> 
 
\t \t \t \t \t \t \t \t <option value="">LS</option> 
 
           <option value="">Per MDY</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Month</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Year</option> 
 
\t \t \t \t \t \t \t </select></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md price" data-a-sign="` " data-w-empty="zero" type="text" id="UnitPrice4"name="price"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md qty" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="QTY4"name="qty"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md subtot" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="Price4"name="subtot"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md gst" data-a-sign="` " data-w-empty="zero" type="text" id="GST4" name="gst"/></div></td> 
 
         <td><div class="form-group"><input class="form-control input-md total" data-a-sign="` " data-w-empty="zero" type="text" id="TotalPrice4"name="total"/></div></td> 
 
         
 
     </tr> 
 
     
 
     <tr> 
 
     <td align="center">5</td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="purchase_description" type="text" id="ProductMaterialServiceDescription5"></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md" name="on_hand" type="text" id="MakeModelNo5"></div></td> 
 
\t \t \t \t \t \t <td width="120"><div class="form-group"><select class="form-control " name="productname" id="UOM5" > 
 
           <option value=""></option> 
 
           <option value="">Nos</option> 
 
\t \t \t \t \t \t \t \t <option value="">Set</option> 
 
\t \t \t \t \t \t \t \t <option value="">LS</option> 
 
           <option value="">Per MDY</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Month</option> 
 
\t \t \t \t \t \t \t \t <option value="">Per Year</option> 
 
\t \t \t \t \t \t \t </select></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md price" data-a-sign="` " data-w-empty="zero" type="text" id="UnitPrice5"name="price"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md qty" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="QTY5"name="qty"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md subtot" type="text" data-a-sign="%" data-p-sign="s" data-w-empty="zero" id="Price5"name="subtot"/></div></td> 
 
\t \t \t \t \t \t <td><div class="form-group"><input class="form-control input-md gst" data-a-sign="` " data-w-empty="zero" type="text" id="GST5" name="gst"/></div></td> 
 
         <td><div class="form-group"><input class="form-control input-md total" data-a-sign="` " data-w-empty="zero" type="text" id="TotalPrice5"name="total"/></div></td> 
 
         
 
     </tr> 
 
    </tbody> 
 
    </table></td> 
 
</div></tr> 
 

 

 
<!-- <body style='font-family: cursive;'> --> 
 
    <script>google.load("picker", "1");</script>  
 
    <body style="margin:20px;"> 
 
    <div class="block form-group"> 
 
     <button onclick="openPicker()" type="button" class="btn btn-primary">Select Files</button> 
 
     <button onclick="openUploader()" type="button" class="btn btn-primary">Upload Files</button> 
 
     <div id="message"></div> 
 
    </div> 
 
    
 
<hr> 
 
    
 
    
 
    <div class="container"> 
 
      <div class="col-md-2 col-md-offset-5"> 
 
      <button style="width: 100%;" type="submit" id="updateBtn" class="btn btn-success" onclick="submitForm(); return false;">Submit</button> 
 
      </div> 
 
     </div> 
 
     <div class="container"> 
 
      <div class="input-field col s12" id = "progress"> 
 
      </div> 
 
     </div> 
 
     <div id="success" style="display:none"> 
 
     <p>Your Data has been successfully uploaded.</p> 
 
     </div> 
 
<hr> 
 

 
</body> 
 

 

 
    <script> 
 

 
function openPicker() { 
 
    google.script.run 
 
    .withFailureHandler(showMessage) 
 
    .withSuccessHandler(showFilePicker) 
 
    .initPicker(); 
 
} 
 

 
function openUploader() { 
 
    google.script.run 
 
    .withFailureHandler(showMessage) 
 
    .withSuccessHandler(showFileUploader) 
 
    .initPicker(); 
 
} 
 

 
function showFilePicker(config) { 
 

 
    // Show all files in Google Drive for selection 
 
    var view = new google.picker.DocsView(google.picker.ViewId.DOCS); 
 
    
 
    view.setIncludeFolders(config.picker.includeFolders) 
 
    .setSelectFolderEnabled(config.picker.allowFolderSelect) 
 
    .setParent(config.parentFolder) 
 
     
 
    // Show file as a grid or list (compact) 
 
    if (config.picker.viewMode === "GRID") 
 
    view.setMode(google.picker.DocsViewMode.GRID); 
 
    else 
 
    view.setMode(google.picker.DocsViewMode.LIST); 
 
    
 
    if (config.picker.mimeTypes) 
 
    view.setMimeTypes(config.picker.mimeTypes); 
 
    
 
    var picker = new google.picker.PickerBuilder() 
 
    .addView(view) 
 
    .setLocale(config.locale) 
 
    .setOAuthToken(config.token) 
 
    .setDeveloperKey(config.developerKey) 
 
    .setCallback(fileSelected) 
 
    .setOrigin(config.origin) 
 
    .setSize(config.dialogDimensions.width - 2, 
 
      config.dialogDimensions.height - 2); 
 
    
 
    if (config.picker.hideTitle) 
 
    picker.hideTitleBar(); 
 
    
 
    // Show files/folders owned by the user 
 
    if (config.picker.mineOnly) 
 
    picker.enableFeature(google.picker.Feature.MINE_ONLY); 
 
    
 
    if (config.picker.navhidden) 
 
    picker.enableFeature(google.picker.Feature.NAV_HIDDEN); 
 
    
 
    // Allow uses to select multiple files/folders 
 
    if (config.picker.multiselectEnabled) 
 
    picker.enableFeature(google.picker.Feature.MULTISELECT_ENABLED) 
 
    
 
    picker.build().setVisible(true); 
 
    
 
} 
 

 
function showFileUploader(config) { 
 

 
    var upload = new google.picker.DocsUploadView() 
 
    
 
    upload.setIncludeFolders(config.picker.allowFolderSelect) 
 

 
    // allowFolderSelect and multiselectEnabled should be enabled 
 
    // setting parent folder disables folder selection 
 
    if (config.parentFolder) 
 
    upload.setParent(config.parentFolder); 
 

 
    // Limit the user from uploading specific types 
 
    if (config.picker.mimeTypes) 
 
    upload.setMimeTypes(config.picker.mimeTypes); 
 
    
 
    var picker = new google.picker.PickerBuilder() 
 
    .addView(upload) 
 
    .setLocale(config.locale) 
 
    .setOAuthToken(config.token) 
 
    .setDeveloperKey(config.developerKey) 
 
    .setCallback(fileSelected) 
 
    .setOrigin(config.origin) 
 
    .setSize(config.dialogDimensions.width - 2, 
 
      config.dialogDimensions.height - 2); 
 
    
 
    if (config.picker.hideTitle) 
 
    picker.hideTitleBar(); 
 
     
 
    if (config.picker.navhidden) 
 
    picker.enableFeature(google.picker.Feature.NAV_HIDDEN); 
 
    
 
    if (config.picker.multiselectEnabled) 
 
    picker.enableFeature(google.picker.Feature.MULTISELECT_ENABLED) 
 
    
 
    picker.build().setVisible(true); 
 
    
 
} 
 

 
function fileSelected(data) { 
 
    var html = []; 
 
    var action = data[google.picker.Response.ACTION]; 
 
    if (action == google.picker.Action.PICKED) { 
 
    var documents = data[google.picker.Response.DOCUMENTS]; 
 
    for (var i = 0 ; i < documents.length ; i++) { 
 
    html.push([ 
 
    documents[i][google.picker.Document.MIME_TYPE], 
 
    documents[i][google.picker.Document.NAME], 
 
    documents[i][google.picker.Document.URL] 
 
    ].join("\t"));  
 
    } 
 
    } else if (action == google.picker.Action.CANCEL) { 
 
    html.push("No file selected"); 
 
    } 
 
    showMessage(html.join("\n")); 
 
} 
 

 
function showMessage(message){ 
 
    document.getElementById("message").innerHTML = message; 
 
    loger.log (message) 
 
} 
 

 
</script> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script> 
 
      $(function() { 
 
      $('.pnm, .price, .subtot, .grdtot'); 
 
      var $tblrows = $("#productList tbody tr"); 
 

 
      $tblrows.each(function (index) { 
 
       var $tblrow = $(this); 
 

 
       $tblrow.find('.qty').on('change', function() { 
 

 
        var qty = $tblrow.find("[name=qty]").val(); 
 
        var price = $tblrow.find("[name=price]").val(); 
 
        var subTotal = parseInt(qty, 10) * parseFloat(price); 
 

 
        if (!isNaN(subTotal)) { 
 

 
         $tblrow.find('.subtot').val(subTotal.toFixed(2)); 
 
         var grandTotal = 0; 
 

 
         $(".subtot").each(function() { 
 
          var stval = parseFloat($(this).val()); 
 
          grandTotal += isNaN(stval) ? 0 : stval; 
 
         }); 
 

 
         $('.grdtot').val(grandTotal.toFixed(2)); 
 
        } 
 
       }); 
 
      }); 
 
     }); 
 

 

 

 
var $price  = $("input[name='subtot']"), 
 
    $percentage = $("input[name='gst']").on("input", calculatePrice), 
 
    $total = $("input[name='total']").on("input", calculatePerc); 
 
    
 

 
function calculatePrice() { 
 
    var percentage = $(this).val(); 
 
    var price = parseFloat($(this).closest('tr').find('.subtot').val()); 
 
    var calcPrice = (price + (price * percentage/100)).toFixed(2); 
 
    $(this).closest('tr').find('.total').val(calcPrice); 
 
} 
 

 
function calculatePerc() { 
 
    var total = $(this).val(); 
 
    var price = $price.val(); 
 
    var calcPerc = 100 - (total * 100/price); 
 
    $percentage.val(calcPerc); 
 
} 
 

 
    </script> 
 
    <head> 
 
    <base target="_top"> 
 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script> 
 
    $(function() { 
 

 
    google.script.run 
 
     .withSuccessHandler(dispEmail) 
 
     .getCurrentUserEmail(); 
 
    });//runs after dom is loaded 
 
    function dispEmail(data) 
 
    { 
 
     $('#email').text(data.email);//put's email into h1 tag 
 
    } 
 
    console.log('My Code');  
 
     
 

 
     function submitForm(btnClicked) { 
 
      $("button").attr("disabled", true); 
 
      var jsonObj = {}; 
 
      jsonObj["Requester Name"] = $("#RequesterName").val(); 
 
      jsonObj["Business User"] = $("#BusinessUser").val(); 
 
      jsonObj["Request Type"] = $("#RequestType").val(); 
 
      jsonObj["Request For"] = $("#RequestFor").val(); 
 
      jsonObj["Short Description"] = $("#ShortDescription").val(); 
 
      jsonObj["Business Reason for Request/Purpose"] = $("#BusinessReasonforRequestPurpose").val(); 
 
      jsonObj["Urgency "] = $("#Urgency").val(); 
 
      jsonObj["S. No(1)"] = $("#SNo1").val(); 
 
      jsonObj["S. No(2)"] = $("#SNo2").val(); 
 
      jsonObj["S. No(3)"] = $("#SNo3").val(); 
 
      jsonObj["S. No(4)"] = $("#SNo4").val(); 
 
      jsonObj["S. No(5)"] = $("#SNo5").val(); 
 
      jsonObj["Product/Material/ServiceDescription(1)"] = $("#ProductMaterialServiceDescription1").val(); 
 
      jsonObj["Product/Material/ServiceDescription(2)"] = $("#ProductMaterialServiceDescription2").val(); 
 
      jsonObj["Product/Material/ServiceDescription(3)"] = $("#ProductMaterialServiceDescription3").val(); 
 
      jsonObj["Product/Material/ServiceDescription(4)"] = $("#ProductMaterialServiceDescription4").val(); 
 
      jsonObj["Product/Material/ServiceDescription(5)"] = $("#ProductMaterialServiceDescription5").val(); 
 
      jsonObj["Make &amp; Model No(1)"] = $("#MakeModelNo1").val(); 
 
      jsonObj["Make &amp; Model No(2)"] = $("#MakeModelNo2").val(); 
 
      jsonObj["Make &amp; Model No(3)"] = $("#MakeModelNo3").val(); 
 
      jsonObj["Make &amp; Model No(4)"] = $("#MakeModelNo4").val(); 
 
      jsonObj["Make &amp; Model No(5)"] = $("#MakeModelNo5").val(); 
 
      jsonObj["UOM(1)"] = $("#UOM1").val(); 
 
      jsonObj["UOM(2)"] = $("#UOM1").val(); 
 
      jsonObj["UOM(3)"] = $("#UOM1").val(); 
 
      jsonObj["UOM(4)"] = $("#UOM1").val(); 
 
      jsonObj["UOM(5)"] = $("#UOM1").val(); 
 
      jsonObj["QTY(1)"] = $("#QTY1").val(); 
 
      jsonObj["QTY(2)"] = $("#QTY2").val(); 
 
      jsonObj["QTY(3)"] = $("#QTY3").val(); 
 
      jsonObj["QTY(4)"] = $("#QTY4").val(); 
 
      jsonObj["QTY(5)"] = $("#QTY5").val(); 
 
      jsonObj["Unit Price(1)"] = $("#UnitPrice1").val(); 
 
      jsonObj["Unit Price(2)"] = $("#UnitPrice2").val(); 
 
      jsonObj["Unit Price(3)"] = $("#UnitPrice3").val(); 
 
      jsonObj["Unit Price(4)"] = $("#UnitPrice4").val(); 
 
      jsonObj["Unit Price(5)"] = $("#UnitPrice5").val(); 
 
      jsonObj["Price(1)"] = $("#Price1").val(); 
 
      jsonObj["Price(2)"] = $("#Price2").val(); 
 
      jsonObj["Price(3)"] = $("#Price3").val(); 
 
      jsonObj["Price(4)"] = $("#Price4").val(); 
 
      jsonObj["Price(5)"] = $("#Price5").val(); 
 
      jsonObj["GST(1)"] = $("#GST1").val(); 
 
      jsonObj["GST(2)"] = $("#GST2").val(); 
 
      jsonObj["GST(3)"] = $("#GST3").val(); 
 
      jsonObj["GST(4)"] = $("#GST4").val(); 
 
      jsonObj["GST(5)"] = $("#GST5").val(); 
 
      jsonObj["Total Price(1)"] = $("#TotalPrice1").val(); 
 
      jsonObj["Total Price(2)"] = $("#TotalPrice2").val(); 
 
      jsonObj["Total Price(3)"] = $("#TotalPrice3").val(); 
 
      jsonObj["Total Price(4)"] = $("#TotalPrice4").val(); 
 
      jsonObj["Total Price(5)"] = $("#TotalPrice5").val(); 
 
      jsonObj["Documents"] = $("#message").html(); 
 
      jsonObj["updateBtn"] = $(btnClicked).text(); 
 
      google.script.run.withSuccessHandler(afterSaving).saveDate(jsonObj); 
 
      return false; 
 
     } 
 

 
     function afterSaving() { 
 
      alert("Thanks, Your response has been recorded"); 
 
      $("button").attr("disabled", false); 
 
     } 
 
    </script> 
 
      
 
    

を単価を変更するあなたが入力

を削除dnot - 私は他のフィールドのエントリを削除dnotない限り、例

まで更新

答えて

1

priceクラスをqtyクラスとともに追加し、イベントリスナーをkeyupに変更するだけです。以下のスニペットを参照してください。

$tblrow.find('.qty, .price').on('keyup', function() { 
    var qty = $tblrow.find("[name=qty]").val(); 
    var price = $tblrow.find("[name=price]").val(); 
    var subTotal = parseInt(qty, 10) * parseFloat(price); 

    if (!isNaN(subTotal)) { 

     $tblrow.find('.subtot').val(subTotal.toFixed(2)); 
     var grandTotal = 0; 

     $(".subtot").each(function() { 
      var stval = parseFloat($(this).val()); 
      grandTotal += isNaN(stval) ? 0 : stval; 
     }); 

     $('.grdtot').val(grandTotal.toFixed(2)); 
    } else { 
     $tblrow.find('.subtot').val(""); 
    } 
}); 
+0

おかげで、リズ、ちょうど '$のtblrow.find( 'subtot ')を追加し、インドのフォーマット – KiKu

+0

で数値をgenrateする.toLocaleStringを追加する方法の一つより多くの助け。ヴァル(subTotal.toLocaleString(' エン-IN' )); ' – Ritz

+0

Riz、上記の行を追加した後にスクリプトが動作を停止しました – KiKu

関連する問題