Jump to content

Search the Community

Showing results for tags 'javascript'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Caspio Bridge
    • General Questions
    • Caspio JavaScript Solutions
    • Tables, Views and Relationships
    • Import/Export and DataHub
    • DataPages
    • Deployment
    • Security, Authentications, Roles, SAML
    • Styles and Localizations
    • Parameters
    • API and Integration
    • Calculations and aggregations
    • User JavaScript and CSS Discussions

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


MSN


Website URL


ICQ


Yahoo


Skype


Location


Interests

  1. Hello, I'm using some code in the Destination section of a submission datapage, deployed in a popup, to update a dropdown field in another datapage. I can get it to work if the dropdown field is a simple text field (store and display the same field) but am having issues when the dropdown is set to store the Unique ID (integer field) but display a different text field. The purpose of the popup is for the user, when creating an inventory item on one datapage, to be able to add a new 'supplier' for it on the fly in another datapage. When the new 'supplier' is submitted, it's ID value goes to the 'supplier' field dropdown on the original datapage and is added to the available lookup choices. The problem is that this code will put the new Unique ID (the SupplierID) in the the dropdown's 'display' so the user sees the ID number instead of the supplier name they typed in on the popup datapage. That new supplier name (text field) is what I need to 'display' in the drop down field BUT use the uniqueID as the 'stored' value. Also, I normally would use a trigger and a field for quick entry (the Supplier's table is different than the Inventory Items table) that could do all this behind the scenes. However, that table is locked by Caspio because of other backend triggers so I have to do this with datapages. Here's the code I'm using. Again, I need to 'display' the Supplier_Name (text255) value but 'store' the SupplierID (integer) when it's sent to the dropdown in the other datapage. Any help would be really appreciated! <script> window.close(); //Replace the FieldName with the Submission form FieldName(parameter name passed when you checked “on exit”. var element_value='[@InsertRecordSupplierID]' var new_item = window.opener.document.createElement("option"); new_item.text=element_value; new_item.value=element_value; // Add new item to the dropdown try { //Replace the FieldName with the Original DataPage dropdown FieldName window.opener.document.getElementsByName("InsertRecordSupplierID")[0].options.add(new_item, null); } catch(ex) { //Replace the FieldName with the Original DataPage dropdown FieldName window.opener.document.getElementsByName("InsertRecordSupplierID")[0].options.add(new_item); } </script>
  2. Hello, On a Details form, I have a text64000 field (uses Rich Text editor toolbar) to store an address value. This value can come from 3 different places, with different values from each, so, depending on which source the user chooses, I hide/show and use a virtual check box to run javascript on change, to paste a value from another virtual field into the text64000 field. <script> $("[name='cbParamVirtual19']").change(function(){ f_copy_print_address('cbParamVirtual22', 'cke_EditRecordItems_ShipAddress'); var v2 = document.getElementsByName("cbParamVirtual22")[0].value; }); $("[name='cbParamVirtual20']").change(function(){ f_copy_print_address('cbParamVirtual23', 'cke_EditRecordItems_ShipAddress'); var v2 = document.getElementsByName("cbParamVirtual23")[0].value; }); $("[name='cbParamVirtual21']").change(function(){ f_copy_print_address('cbParamVirtual24', 'cke_EditRecordItems_ShipAddress'); var v2 = document.getElementsByName("cbParamVirtual24")[0].value; }); </script> This will take the value from Virtual 22, 23, 24 (they are cascading virtual fields, hence the GetElementsByName) respectively and put it into the Items_ShipAddress field. This works fine in terms of getting the address value to show up in the Items_ShipAddress field. The problem is that when Updated this value is not saved (even though you can see it in the Items_ShipAddress field) UNLESS the user clicks into the Items_ShipAddress field and manually types in at least 1 letter (meaning they have to manually edit the field to save the value, the value the js puts in somehow doesn't 'stick'). I tried saving as a variable the values from Virtual 22, 23, 24 when they're generated (as you can see by that line of code above) and then using that variable to 'save' to the Items_ShipAddress field before Submit (code below). But it's not using the variable if/when the user changes the choice of which virtual checkbox to use (the on Change code). This is the code for before submit: <script type="text/javascript"> document.addEventListener('BeforeFormSubmit', function (event) { document.getElementById("EditRecordItems_ShipAddress").value = v2; }); </script> Any help would be really appreciated (I've tried using calculated values but haven't been able to get it to work for a number of reasons- I'd really just like the js to work).
  3. I was able to get this figured out. I needed to move my code to my footer. I have deployed an update datapage on Wordpress and the javascript below works fine. However, I deployed it on a Weebly website and it is not working. I have pasted the javascript below and then also the deployment code I put on Weebly. I have other custom javascript that is working on the same datapage, so wondering if the iMask might be the problem? Javascript in the Datapage: <script src="[@app:iMask/]"></script> <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { var phoneMask = IMask( document.getElementById('EditRecordFax'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordOffice_Phone'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordOther_Phones'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordPrimary_Phone_Number'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordCell_Phone'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordHome_Phone'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordBeeper'), {mask: '(000) 000-0000'}); var phoneMask = IMask( document.getElementById('EditRecordOther_Phone'), {mask: '(000) 000-0000'}); }); </script> Datapage embed deployment code: <script type="text/javascript" src="https://c2axa376.caspio.com/dp/3c194000bfe6c015b6ac4d52b0e2/emb"></script> <div class="cxkg"><a href="https://c2axa376.caspio.com/dp/3c194000bfe6c015b6ac4d52b0e2">Click here</a> to load this Caspio <a href="http://www.caspio.com" target="_blank" title="Cloud Database">Cloud Database</a></div> <div id="cb3c194000bfe6c015b6ac4d52b0e2"></div>
  4. In my search form in Reports DataPage, I want to select all the items in a multi-select listbox when my checkbox is checked. Also, when it is unchecked, all the items should be deselected. Any ideas?
  5. I've got 3 fields set as Listboxes on a Submit datapage. I'm using js to select multiple records and enter them comma delimited upon submission. The code works fine when doing it with one Listbox but I can't figure out how to get it to work for all three. Right now I'm just repeating the code for each listbox (with a different variable name for each) but it doesn't work. I imagine there's a more unified way to do this so the code covers all 3 Listboxes. Anyone have any ideas? Here's the code so far (it's obviously wrong to repeat the entire script 3 times, I just don't know how to unify it): <script type="text/javascript"> var v_state = "[@field:Field1]" ; var o_state = document.getElementById("InsertRecordField1") ; o_state.multiple = true ; function f_listbox() { if ( v_state.indexOf(",") > 0 ) { for (var i=0 ; i < o_state.options.length; i++ ) { if(o_state[i].value == v_state) { o_state.remove(i); break ; } } var o_st = v_state.split(", ") ; for (var j=0 ; j < o_st.length; j++) { for (var i=0 ; i < o_state.options.length; i++ ) { if(o_st[j]== o_state.options[i].value){ o_state.options[i].selected = true ; break ; } } } } } //window.onload = f_listbox ; document.addEventListener('DataPageReady', f_listbox()); </script> <script type="text/javascript"> var v_state2 = "[@field:Field2]" ; var o_state2 = document.getElementById("InsertRecordField2") ; o_state2.multiple = true ; function f_listbox2() { if ( v_state2.indexOf(",") > 0 ) { for (var i2=0 ; i2 < o_state2.options.length; i2++ ) { if(o_state2[i2].value == v_state2) { o_state2.remove(i2); break ; } } var o_st2 = v_state2.split(", ") ; for (var j2=0 ; j2 < o_st2.length; j2++) { for (var i2=0 ; i2 < o_state2.options.length; i2++ ) { if(o_st2[j2]== o_state2.options[i2].value){ o_state2.options[i2].selected = true ; break ; } } } } } //window.onload = f_listbox2 ; document.addEventListener('DataPageReady', f_listbox2()); </script> <script type="text/javascript"> var v_state3 = "[@field:Field3]" ; var o_state3 = document.getElementById("InsertRecordField3") ; o_state3.multiple = true ; function f_listbox3() { if ( v_state3.indexOf(",") > 0 ) { for (var i3=0 ; i3 < o_state3.options.length; i3++ ) { if(o_state3[i3].value == v_state3) { o_state3.remove(i3); break ; } } var o_st3 = v_state3.split(", ") ; for (var j3=0 ; j3 < o_st3.length; j3++) { for (var i3=0 ; i3 < o_state3.options.length; i3++ ) { if(o_st3[j3]== o_state3.options[i3].value){ o_state3.options[i3].selected = true ; break ; } } } } } //window.onload = f_listbox3 ; document.addEventListener('DataPageReady', f_listbox3()); </script>
  6. Hello, I have some js in the Destination part of a submission form, for after the Submit happens (I do this in js because there are 3 different sets of options to go to after submission, depending on what the user selected in the submission fields). I'm using window.location instead of window.open because of popup restrictions. I need to do 2 things on form submission: 1) have the existing window go to a url with parameters like a normal Caspio form can do and 2) open a different url in a new tab. So basically, the user clicks Submit, the existing window refreshes to a new page and a new tab opens to a different url. Is this possible? Something like: window.location.href = '[@field:First_URL]'; window.location.href = '[@field:Second_URL]', '_blank'; I don't know how to get it to run the code for the 2nd url before it updates to the first, as well as get the 2nd url to open a new tab.
  7. Hi, I have a submission form with an image field. I need to be able to use js to bypass the user having to use the Browse button to pull the image path for the image to be submitted (so I can streamline a process of uploading images- I've got a field with the image path mapped to Downloads folder and have a Virtual field using it as a data source. I just need to put that path in the image field so the user doesn't have to Browse to it). I set up test code using a button to trigger the js function so I could see if it was putting the image path (Virtual 1) into the image field for submission (ItemPic). When I run the code using the button I get an error message on the submission form: "Values cannot be submitted due to a data restriction." Does anyone know how to bypass that restriction, in the function I have below? <div style="text-align: center;"> <input class= "cb_custom_btn" type="button" onclick="myFunction()" value="Copy PicPath" /> <script> function myFunction(){ var picpath = document.getElementById("cbParamVirtual1").value; document.getElementById("InsertRecordItemPic").value = picpath; } </script> </div>
  8. Hello, I've been working with Caspio for a while now (Although I haven't done any real coding before), and I'm having trouble getting the coding right for something in a tabular report. I have a report with roughly twenty fields and thousands of records. I have a yes/no field that determines whether records have been reviewed by an employee (they toggle it themselves). I'm attempting to set it up to color code the records or even specific fields for that to make it easier to see if things have been dealt with or not. This is the link I found that seemed to have what I needed. I don't have any experience with Javascript so if I'm making an obvious mistake I'm unaware of it. https://howto.caspio.com/tech-tips-and-articles/advanced-customizations/how-to-dynamically-change-the-background-of-a-results-page/?_ga=2.268956409.901822134.1565024539-1632853601.1563754793 This is the code I've set up in an alternate HTML block based on the guide. We have an autonumber field 'Encounter_ID' and a yes/no for 'Needs_Review' [@field:Needs_Review^] <a id="visi[@field:Encounter_ID]"> <script> var isi = document.getElementById("visi[@field:Encounter_ID]"); if('[@field:Needs_Review]' == 'Yes'){ isi.parentNode.parentNode.style.backgroundColor = '#FF9999'; } else{ isi.parentNode.parentNode.style.backgroundColor = '#AAFAFA'; } </script> My issue is that when I input the code, it shows the entirety of it typed out without making any changes to the color. If anyone could explain what I'm doing wrong, or suggest an alternative way to accomplish this, please let me know. I would greatly appreciate it. Thanks in advance! - Ryan
  9. Hi there, How can I create a chart using just values from table fields but not the count/sum functions? My result set is 1 row and I want to show values on a chart. If value is blank - I don't want to show it on the chart. Any help will be appreciated. Regards, vitalikssssss
  10. Want to display a different header according to value of field from user authentication. Code logic works fine, but the HTML I want to be executed does not work. Here's a sample script. The Italics part after the "if" statement works well on its own, but with the conditional code, it is ignored. Rules can't be used (I think) as they do not operate with Header or Footer blocks in a Data Page. <script> if("[@authfield:User_Company_Name]" == "ABC Ltd"){ Welcome [@authfield:User_Name] to your account &nbsp; <a href="https://www.myurl1/" target="_blank"><img alt="" src="https://myurl2.png" style="width: 50px; height: 10px; vertical-align: middle;" /></a>&nbsp;<a href="https://Myaccount.caspio.com/folderlogout">Logout</a> } Else{ Display an alternative header } </script> Many thanks for any help/advice you may be able to give!
  11. In a table i have 12 columns like "Proof_for_Placement(File Filed)", "Document_Remarks_Placement(Text Field)", "Document_Upload_Date(Date Field)" etc. So i have created a coding if users upload a file in "Proof_For_Placement" the automatically "New" status will be taken in "Document_Remarks_Placement" filed and Timestamp will be captured in "Document_Upload_Date" filed. <script type="text/javascript"> function addTimestamp (fileInputId, timestampInputId) { var fileInput = document.getElementById(fileInputId); fileInput.addEventListener('change', function () { if (fileInput.files.length !== 0 ){ document.getElementById(timestampInputId).value = '[@cbTimestamp*]'; } }); }; function addDocStatus (fileInputId, docstatusId) { var fileInput = document.getElementById(fileInputId); fileInput.addEventListener('change', function () { if (fileInput.files.length !== 0 ){ document.getElementById(docstatusId).value = 'New'; } }); }; addDocStatus('EditRecordProof_For_Placement', 'EditRecordDocument_Remarks_Placement'); addTimestamp('EditRecordProof_For_Placement', 'EditRecordDocument_Upload_Date'); addDocStatus('EditRecordWorking_Proof_1st_Month', 'EditRecordDocument_Remarks_1st_Payslip'); addTimestamp('EditRecordWorking_Proof_1st_Month', 'EditRecordWorking_Proof_Submitting_Date'); addDocStatus('EditRecordWorking_proof_2nd_month', 'EditRecordDocument_Remarks_2ndPayslip'); addTimestamp('EditRecordWorking_proof_2nd_month', 'EditRecordWorking_proof_Submitting_Date_2'); addDocStatus('EditRecordWorking_proof_3rd_month', 'EditRecordDocument_Remarks_3rdPayslip'); addTimestamp('EditRecordWorking_proof_3rd_month', 'EditRecordWorking_proof_Submitting_Date_3'); </script> Now i want a different code for different process. Like if someone checked the documents or file in "proof_for_placement" and changed the status of "Document_Remarks_Placement" manually then "Document_Upload_Date" will be taken as the timestamp. Since i have zero coding language, i am not able to build the code.
  12. I've been trying to add a month to a date for the use of recurring payments. The code I have to put in the HTML block I have placed below. And thats a code i got from someone else on this website but it doesn't not work. Please help. [@field:New_Date*] <SCRIPT LANGUAGE="JavaScript"> function setDate() { var New_Date = "first"; var Current_Date_1 = "second"; New_Date = "InsertRecord" + New_Date; Current_Date_1 = "InsertRecord" + Current_Date_1; var New_Date = document.getElementById(New_Date ).value; var New_Date = new Date(Date.parse(New_Date)); var result_Date = new Date (first_Date.setMonth(first_Date.getMonth()+1)); var d_month = result_Date.getMonth() + 1; if (d_month<10) {d_month = "0" + d_month;} var d_day = result_Date.getDate(); if (d_day<10) {d_day = "0" + d_day;} var d_year = result_Date.getFullYear(); var str_date = d_month + "/" + d_day + "/" + d_year; document.getElementById(Current_Date_1[@field:Current_Date_1*] ).value = str_date; } document.getElementById("caspioform").onsubmit=setDate; </SCRIPT>
  13. In my submission form, I wanted the value entered in one of my text fields to be automatically copied in my password and confirm password field. Does anyone have ideas about this? Thanks!
  14. I am looking to implement a simple validation on my form. I would like my user to not submit any numeric value in my submission form.
  15. I have an odd problem trying to work around the lack of "Distinct" query functionality within Caspio. My data has many to many joins and therefore the view lists a specific field multiple times. When I query to reach a list of these fields, there are obviously multiple rows. I am trying to eliminate those multiple rows and list a single row for each unique value in that field only. The problem is that the datapage is still formatted as if all the results are present. So I get multiple pages with only a single entry on each. While I can change the view to include more records per page, that does not actually solve the problem. I would like to be able to prevent the pagination or actually remove the extra rows from the result set instead of just hiding them. Any ideas?
  16. Here is my dilemma - my initial Client Table is set up to take in up to 2 address and up to 2 names per record to create a Client List. This is because if a husband and wife call us for work, we want them on the same account and such. Same with the Address field, because they may have a personal home and a rental home, in example. My Work Order form, which takes place after finding the client through the Client List, can only take in One address and One name. I couldn't put in two address fields into one dropdown with Caspio Standard Features. To combat that, I created a third page to act between the client list and the Work Order Form. This page will take in a parameter from a button on the Client List, where the user will select the Address and the Name to be on the Work Order Form. So, we made our own dropdown in an HTML table that includes both Addresses, so you can select one. Here is the code for the HTML block dropdown - <select id='test'> <option value="[@field:Primary_Client]">[@field:Primary_Client]</option> <option value="[@field:Additional_Client]">[@field:Additional_Client]</option> </select> I am needing help creating JS script for a query string value - it will send the selected value from the custom HTML Block Dropdown to the Work Order Form. Here are the table designs for the Client List and the Client Work Order list. You can see the Client Table has two address fields and the Client Work Order Table has one. Same with Client Names. The Client List Table is the 1st screenshot, and the Work Order Table is the 2nd.
  17. Hi there, I would appreciate if someone could help me modifying styles of a dropdown on inline insert functionality of Tabular Report Datapage. I have a Cascading dropdown "EMAIL" where I would like to assign a special font and add a bottom border for each option. The challenge I am facing is that I have other dropdowns on this Datapage and I would like them to preserve default styling. Thanks, vitalikssssss
  18. I accidentally posted this in the wrong forum (datapages) so I wanted to repost it here: I have some code I'm trying to get to work in the Footer on a Details form to halt AutoSubmit code when a value of 1 is reached in a Virtual field (calculated). The Details datapage is set to go to 'Next Record' on update so the Auto Submit cycles through the records. The problem is that when it gets to the last record it keeps auto submitting and I need it to stop AFTER submitting the last record. I found some code on this forum but can't get it to work- that code was older, before virtual fields could be calculated. If anyone knows how to adjust this code to get it to work that'd be really great. <script type="text/javascript"> if(document.getElementById("caspioform")) { if(document.getElementsByName("cbParamVirtual2")[0].value==1) { document.getElementById("caspioform").style.visibility = 'hidden'; document.write('<font face="arial" color=red size="5">No more Submissions!'); } else { setTimeout('document.forms["caspioform"].submit()',1000); } } </script>
  19. I have a Details page that I'm using Auto Submit code to cycle through and update related records. However, when it gets to the last record (for example, 4 of 4) it keeps in the 'submit' cycle. I need the form to stop submitting once it's submitted the last record. Then, ideally, I need the form to go to another web page. But getting it to stop submitting after the last record update would be a good first step. Does anyone know how to adjust the Auto Submit code I'm using below? <script type="text/javascript"> if(document.getElementById("caspioform")) { document.getElementById("caspioform").style.display = 'none'; setTimeout('document.forms["caspioform"].submit()',1000); } </script>
  20. Hello, I have a Details datapage set up so when Update is clicked it goes to the next record. I need to figure out how to create a custom button (to put in either the Footer or an HTML block) to go to the Next Record (and a button for Previous, as well) so that the user can cycle through without clicking Update. The standard record navigation arrows at the bottom will not work for UI reasons (I need to make the custom 'Next Record' button relabeled and hidden in various scenarios). Does anyone know how to create a custom button for Next Record? As well, I also need to know how to hide that button (if it's in its own Section in an HTML block) when the Details form is at the 'last record' of the series (because there will be no 'Next Record' at that point). Any help would be greatly appreciated-
  21. Hello All, I have a Details datapage that I'm using to update a series of related records, one at a time. I've got code to run the update automatically (so the user doesn't have to click a button). The final setting is "Navigate to next/previous records" so it cycles through all the related records (filtered by a common ID number for each record). What I need it to do is, after the LAST records is updated, go to a new web page entirely. I don't know how to do BOTH "Navigate to next/previous records" AND THEN go to a new page after last record is updated. Does anyone know how to do this? Many thanks in advance!
  22. Hi! I am trying to create 8 Date/Time fields where the user inputs Date, Hours and Minutes in separate fields. I found some JS that works on combining the input, but it only works on combining one set of the three fields to on Display Field. This is the code that I put in the Footer: <script> //Created_On_From document.getElementsByName('Submit')[0].onmouseover = function(){ var date = document.getElementById('cbParamVirtual11').value; if(date == ""){ date = "00/00/0000"; } var hour = document.getElementById('cbParamVirtual26').value; if(hour == "") { hour = "00"; } var minute = document.getElementById('cbParamVirtual27').value; if(minute == "") { minute = "00"; } document.getElementById('cbParamVirtual49').value = date + " " + hour +":"+ minute; }; </script> <script> //Created_On_To document.getElementsByName('Submit')[0].onmouseover = function(){ var date = document.getElementById('cbParamVirtual18').value; if(date == ""){ date = "00/00/0000"; } var hour = document.getElementById('cbParamVirtual33').value; if(hour == "") { hour = "00"; } var minute = document.getElementById('cbParamVirtual32').value; if(minute == "") { minute = "00"; } document.getElementById('cbParamVirtual48').value = date + " " + hour +":"+ minute; }; </script> Any help would be appreciated...
  23. Depending on what location is associated with a user(a column in the user table - the parameter), I would like to selectively hide a specific column in a report datapage. I am able to get Caspio to hide the column as desired on the preview Caspio page , but when deployed, Caspio seems to ALWAYS hide the column, regardless of the Country condition. Could you please take a look? This is where the datapage is deployed: https://dsmtest001.weebly.com/testjsreport.html. There are 2 user accounts-> 1. user1@test.com | 12341234 - Country is USA 2. user2@test.com | 12341234 - Country is Canada Column B should be hidden for the USA user but not the Canadian user. The selective functionality is achieved through the following code, inserted in the header of the report datapage: <script> alert('[@authfield:Country]' +' is the current country ' + ' -> going to hide column/row B if country is USA'); if ('[@authfield:Country]' === 'USA') { document.getElementById('targetxxx').innerHTML = "<style>#targetxxx table:nth-of-type(1) td:nth-of-type(2) {display: none;} </style>"; document.getElementById('targetxxx').innerHTML = "<style>#targetxxx table:nth-of-type(1) th:nth-of-type(2) {display: none;} </style>"; } </script> <div id="targetxxx"> and the below inserted in the footer: </div> Last but not least, attached is the sample Caspio app CaspioData_2019-Feb-25_2157.zip
  24. I want to change the blue color and shape of a selected Dropdown. I believe it takes more than CSS and requires Javascript. Please check the attached image. Any ideas? Thanks! Jared
  25. Hi! There is a Tabular report with a comment field (Text64000). I want to add a "Copy Text" button, that on click will copy text from the comment field to the Clipboard, so a customer can copy the text without highlighting and copying. Just one click action to copy. I have found some solution, but it does not look like working in the reports: https://www.w3schools.com/howto/howto_js_copy_clipboard.asp Has anybody done it before or maybe you have some working solution? Thanks in advance.
×
×
  • Create New...