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. Is it possible, using javascript / jQuery, to extract data from specific fields in a Caspio table, or its results datapage, and assign that data to an array? If so, can this code be made to work by placing it in an HTML block inside the relevant datapage? Please give me an example of the code that would achieve this. Thanks
  2. Anyone know how to have the listbox height be automatic based on how many records there are in it? At times my users have 2 records & others 5+ records so having a box that auto sizes per the number of records would be optimal.
  3. Hello, I saw this How-to article on changing the background of a row based on the value of a field: http://howto.caspio.com/tech-tips-and-articles/advanced-customizations/how-to-dynamically-change-the-background-of-a-results-page/ However, I need to delete the row instead of changing its background color. Also, I need to delete the row when a calculation returns a blank value. Is this possible? I don't know how to write JavaScript code.
  4. Hi there, I've built a page that has a grid of images, allowing users to click on these images to make a selection ... and then I want these selections to all be saved to a table as separate entries along with their user information. So far, I can get only 1 selection to pass to the table. If they click on one of the images, that is sent to the table, fine. I've set it up so that each selection is added to the string, separated by a comma, but then this passes to the table as a single entry with the comma separated string. This is my code: function SelDatasource1() { document.getElementById("Datasource1").className = "SELECTED"; document.getElementById("InsertRecordDatasource").value += "Datasource1,"; document.getElementById("InsertRecordProject").value += "[@authfield:User_info_Project],"; document.getElementById("InsertRecordDatasource").multiple = true; } function SelDatasource2() { document.getElementById("Datasource2").className = "SELECTED"; document.getElementById("InsertRecordDatasource").value += "Datasource2,"; document.getElementById("InsertRecordProject").value += "[@authfield:User_info_Project],"; document.getElementById("InsertRecordDatasource").multiple = true; } ...etc etc ... there are over 30 of these. If somebody selects Datasource1, Datasource5, Datasource12, it shows up in the table like this: PROJECT DATASOURCE Project1,Project1,Project1 Datasource1,Datasource5,Datasource12 I am using a Submission form datapage at present, and have added my code using html blocks and footer. 2 things I need help on: 1. I know there is a better way to add a comma to the string, other than putting it in like this (i.e. value +="Datasource1,"). This way, a comma is added for a single entry and at the end of a long string, which I don't want to do - can anybody help me with this? 2. Can I pass this comma separated string so that it shows up in my table like this: PROJECT DATASOURCE Project1 Datasource1 Project1 Datasource5 Project1 Datasource12 Any help would be greatly appreciated! Many thanks Nikki
  5. The login data page is being blocked from being used as soon as the page renders. I checked the console and the embed code seems to be causing a problem. This is the message in the console. A Parser-blocking, cross-origin script, https://c4fot477.caspio.com/dp.asp?cbqe=QXBwS2V5PWM1NDQ1MDAwZGU1ZjUxY2RiMDJ…nI9YzU0NDUwMDBkZTVmNTFjZGIwMmU0MzNlODJiOQ==&cbEmbedTimeStamp=1487653960962, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity. See https://www.chromestatus.com/feature/5718547946799104 for more details. f_cbload @ embed.js:1 (anonymous) @ ?cbr=c544500…:56 The chrome status link talks about 2g connections. I'm on a desktop. Does anyone have a clue on what could cause this issue?
  6. Hi there, I would like to share a JS solution which I have used for my project. This script that can be used to clear fields in the bulk edit screen. The bulk edit screen typically displays the data from the last update, and my JS allows not show the previous content of fields. Place following JS into the Footer of Bulk edit screen. Make sure that you have disabled HTML editor. <script type="text/javascript"> var aaa= document.getElementById("BulkUpdateFormBody"); var v_li = aaa.getElementsByTagName("input"); var v_ls = aaa.getElementsByTagName("select"); var v_lt = aaa.getElementsByTagName("textarea"); var f_tmpf = function(v_list, v_resList){ var v_res = v_resList || []; var v_length = v_list.length; for(var v_i = 0; v_i < v_length; v_i++) if((v_list[v_i].type || "").toUpperCase()!="HIDDEN" && (v_list[v_i].nodeName||'').search(/input|select|textarea/ig) != -1) v_res.push(v_list[v_i]); v_resList = v_res; return v_res; } var v_cleanI=f_tmpf(v_lt, f_tmpf(v_ls, f_tmpf(v_li, []))); v_cleanI.forEach(function(v_i){ v_i.value = ""; }); </script> I hope this will be useful for someone.
  7. Hi I need to add a button that will redirect to a specific page on a HTML form This button must be visible or not visible based on a condition from an authentication field I created the html form and added this code: <script> if("[@authfield:User_Role]" == "Manager") { ---> Add a code here that will show a button that will redirect to a page } </script> Can someone send me an example code that I can place between the brackets? I tried several options but nothing works.
  8. I have a combined chart and report datapage that I use to display a list of jobs and their status. I would like the list and chart to have dynamic colours according to their status. This is quite easily accomplished, and in fact I have already completed it. My issue comes in place with AJAX. I cannot disable AJAX on a combined chart/report datapage, therefore when I do a bulk edit on my report, the chart reverts back to the default colours. I am guessing this is because the chart loads without running the javascript in the datapage. Is there a way to execute javascript in a datapage not only on load, but also on an AJAX call? Thanks, Josh EDIT: I just realized that it's not because of the combined chart/report that I cannot turn off AJAX, but it is because of the grid edit.
  9. Hi Everyone, I'm very much a newbie on the Caspio platform, but I've been making great strides. I have a datapage created that has two columns that can have a value of an "N". I would like to create some form of code to allow the value to blink, if it is equal "N". Is that possible and can anyone assist me in accomplishing this? Thank you! -Anthony
  10. When I had my onboarding with Caspio helped with some Java Script to replace a blank space with " OR " so we could search on a field using "Contains" versus "Equals". We are now trying to duplicate this code in a new data page and it is not working. The data page where it does work is "Search Bar" on field "Virtual4" and the code is in the header and the footer. The results are then passed to another data page. I now want to create a data page where the search is contained in the page and the results are not passed. The functionality we need is to cut & paste style #'s into the search box and upon clicking submit the script runs and replaces the space with " OR " and the "contains" search runs. Here is an example use case Cut and paste "CM7661 CM7662 CM7854" Click Submit Script runs and replaces the spaces with " OR " and the query looks like "CM7661 OR CM7662 OR CM7854" The results for the 3 style numbers are returned The code we have in the header is: <div id="search"> The code we have in the footer is: <script> document.getElementById('search').onsubmit= function (){ var txt = document.getElementById('cbParamSeason_Table_Style').value; document.getElementById('cbParamSeason_Table_Style').value = txt.replace(/\s+/g, " OR "); } </script> Why is this not working? Thanks, Jeff
  11. Hi, I want to output a parent record and its linked child records (a variable number of records) as a JSON array to display in a html page that consists of sections. Each section contains one or more fields from either the child or parent record(s). I would like to be able to push the data upon clicking a button. Following is an example of what I mean. (NB: The actual Parent Table has 10 fields and the Child table has 60 fields, including some that are formula fields). Parent table fields: FIELD: PID PF1 PF2 PF3 TYPE (autonumber) text date number Child Table fields: FIELD: CID (autonumber) PID CF2 CF3 CF4 CF5 TYPE (autonumber) integer text date number checkbox PID is an Integer field and relationship linked to same field in Parent table. Section 1 [CF3-record1] [CF3-record2] [CF3-record3] Section 2 [CF2-record1] [CF4-record1] [CF2-record2] [CF4-record2] [CF2-record3] [CF4-record3] Section 3 [CF5-record1] [PF1] [CF5-record2] [PF1] [CF5-record3] [PF1] It would be much appreciated if someone can assist by providing some instructions and javascript if needed. Many thanks!
  12. I am trying to allow for this JQuery tag affect to occur when the user types in to the text area in the virtual field of my submission form but have not been successful. Disclosure: Since I am new to Javascript, I was wondering if I am referencing the JQuery and Tag-It components properly? I attempted switching the id/class element with "cbParamVirtual1" and "caspioform" but no luck. I would appreciate anyone's feedback. (This is in the footer of the datapage.) <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript" charset="utf-8"></script><script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/js/tag-it.js" type="text/javascript" charset="utf-8"></script> <script language="JavaScript"> $(function(){ //------------------------------- // Single field //------------------------------- $('cbParamVirtual1').tagit({ // This will make Tag-it submit a single form value, as a comma-delimited field. singleField: true, singleFieldDelimiter: ',', singleFieldNode: $('#mySingleField') }); }); </script>
  13. Hi, I've reviewed the forums and have been able to successfully pass virtual field data into my Caspio tables using the '"Cascading drop-downs" JavaScript code method in the header and footer section of the form. It's working perfectly. I'm currently having an issue passing virtual field data into my Caspio table using a "Single Record" update form; which is required for my multi-step submission form . I modified the code for 'text field' (removing the [0]) since cascading drop-downs are not being used. The user will be entering data into the form directly. The code I'm using to 'get' the virtual text field value in the Header section of the single record update form is: <SCRIPT LANGUAGE="JavaScript"> function concatenate() { var x = document.getElementsByName("cbParamVirtual1").value; document.getElementById("LandFillRate1_Field").value = x; var x = document.getElementsByName("cbParamVirtual2").value; document.getElementById("LandFillRate2_Field").value = x; var x = document.getElementsByName("cbParamVirtual3").value; document.getElementById("LandFillRate3_Field").value = x; var x = document.getElementsByName("cbParamVirtual4").value; document.getElementById("LandFillRate4_Field").value = x; var x = document.getElementsByName("cbParamVirtual5").value; document.getElementById("LandFillRate5_Field").value = x; } document.getElementById("caspioform").onsubmit=concatenate; </SCRIPT> The code I'm using to insertrecord into the table in the Footer Section of the single record update form is as follows: <SCRIPT LANGUAGE="JavaScript"> function concatenate() { var x = document.getElementById("cbParamVirtual1").value; document.getElementById("InsertRecordLandFillRate1").value = x; var x = document.getElementById("cbParamVirtual2").value; document.getElementById("InsertRecordLandFillRate2").value = x; var x = document.getElementById("cbParamVirtual3").value; document.getElementById("InsertRecordLandFillRate3").value = x; var x = document.getElementById("cbParamVirtual4").value; document.getElementById("InsertRecordLandFillRate4").value = x; var x = document.getElementById("cbParamVirtual5").value; document.getElementById("InsertRecordLandFillRate5").value = x; } document.getElementById("caspioform").onsubmit=concatenate; </SCRIPT> Unsure if my getElement should be by Name or ID; and if it differs between the header and footer scripts. The examples for the footer script show ID and the header shows name. I'm officially confused. I'd greatly appreciate any assistance provided. I checked the script using the F12 function in the console and everything looks good but still no data showing in the table. Thanks, Bre
  14. Hi there, I have 2 tables that I'm passing parameters between using a redirect and auto-submit. In the datapage, the user can assign a star rating which is updated in the main table. I wish to pass that parameter to my second table (via the redirect / auto-submit) ONLY if it has changed ... At the moment, the field is called "QA_Tester_Rating" in both tables and it is passing fine from the redirect etc to the 2nd table. Do I want to set up a script in my first datapage or second, to look for changes in the field and only pass the figure if it has changed? I want the field to be blank in my table if there are no changes. Any help much appreciated! Nikki
  15. I am using the JavaScript from this "Limit the Number of Submissions" article to display one hyperlinked image or another hyperlinked image based on meeting a condition. This is the original JavaScript from the article: <script> if([@field:Attendees] <[@field:Maximum_Attendees]) { document.write("<a href='SubmissionURL&Course_ID=[@field:Course_ID]'> Signup </a>"); } else { document.write("<p>Signup Closed</p>") } </script> This is my modified version with image links instead of text links: <script> if([@field:Keyword_Count#] <[@field:Max_Keywords#]) { document.write("<a href='URLwithPARAMETERS'><img src='IMAGEURL'></a>"); } else { document.write("<a href='URLwithPARAMETERS'><img src='IMAGEURL'></a>") } </script> Currently, when a visitor clicks on the image, the destination of the hyperlink is the same window. I would like the destination to be a popup window with resized window. I already use JavaScript popup code in another DataPage, so I figured I would paste and modify as so document.write("<a onclick="window.open(...); return false"><img></a>"), but this does not work. JavaScript popup code that works on another app, outside of the document.write("..."). <a onclick="window.open('URLwithPARAMETERS','popup','width=550,height=200, scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=50,top=50'); return false"><img alt="Delete" src="IMAGEURL" style="width: 20px; height: 20px; margin: 1px;" /></a> Any recommendations?
  16. Hi Caspio newbie here! I'm trying to do email verification, most of it works fine but the only way to change the verification status to yes is to manually run the datapage I created called email_verification. the email sends okay and the link copies the GUID but it doesn't change the field status. I tried copying the script on the help page to get automatic updating but it doesn't appear to work....my code is as follows <script> document.getElementById('caspioform').onsubmit = function (){ document.getElementById('[@field:Email_Verified^]').checked="y"; } </script> any advice much appreciated Ian
  17. Hi there, I have tabbed content on my page. One of which looks like this: <li><a data-toggle="tab" href="#menu4" style="background-color: #10368F; color: white;">5. TEST RESULT</a></li> I'd like to change the background color of this element to grey IF my dropdown (named [@Expected_Outcome]) equals Business Insight. I know I can probably figure this out, but my brain is turning to mush from looking at this and I have a deadline looming!! Can anyone help me write the correct script? Many thanks Nikki
  18. Hi there, I would like to timestamp a field (Test_Completed), but only if it hasn't already been timestamped and only if a different field (Actual_result) has content. I found a forum answer about timestamping a field, and have tried to modify it to include my conditions, but I am not too good with JavaScript! This is what I've done, can anyone help?? <SCRIPT LANGUAGE="JavaScript"> /* Declaration and initialization */ Stamp = new Date(); var v_TimeStamp; Hours = Stamp.getHours() Mins = Stamp.getMinutes(); /* Construct the value of the v_TimeStamp variable in the format m/d/yyyy hh:mm */ v_TimeStamp=('' + (Stamp.getMonth() + 1) +"/"+Stamp.getDate()+ "/"+Stamp.getFullYear() + ' ' + Hours + ":" + Mins); if ('[@field:Actual_result]' === 'input.length >1' && '[@field:Test_Completed]' === "") { document.getElementById("EditRecordTest_Completed").value=v_TimeStamp; } </SCRIPT> Many thanks Nikki
  19. We have a requirement for our Users to be able to update v quickly a large number of records within a tabular type report. The Bulk Edit/Update on its own wont work for us as we need to - when updating each of the records - to concatenate two Notes fields together along with a system date within each record and update another field. We can do this quite easily with JS in aa single Details Page (simple JS concatenating the two different notes values and adding today's date). However this approach does not seem to work on the Bulk Edit/Update - as whilst we can change a common field value across multiple records we cant get JS to individually do a concatenation in each of the records involved. Am really interested in any ideas for this. Our latest thinking - please comment - is to use a Tabular report of searched records to display in std tabular form to the User. But to have an HTML block at the end that has a URL link they can click. This would open some kind of hidden web window/tab containing a Details record that we can apply the JS to (as advised above) for concatenating the two Notes field values and the date within each record. We have not quite got this to work and I would be really interested in views from this Forum. A key stumbling block is to arrange for a Parameter value that can be selected once - whilst at the Tabular report - and then reused/retained as the User works his/her way down the list by clinking on the link quickly opening/closing a Details form (using Auto Submit?). This parameter value we use to update a field with the records status. It and the values of the Notes fields that we concatenate and then update another field and really the record changes we are trying to accomplish. We have tried using a second datapage with a dropdown of the values that would hold a parameter value to pass over. However it loses its value after the first click. We were wondering if we could have somekind of dropbox field that we could set once and which would then keep its parameter value held whilst the User was clicking the html link block on the Tabular report and then activating the hidden web window/tab with the Details record. Any ideas from you experts out there :-)
  20. Hi, I'm trying to run a 'change' function on a virtual field ONLY when a regular field is Null. This is in a submission form. The code I have below seems to run automatically when the form is opened, I guess because the virtual field is a cascading dropdown so it's 'changing' when the form is loaded, based on the parent field. I only want this code to run if the 'ItemID' field (ItemID is not the parent of the cascading Virtual9) is null. If it is not null then I need this code to not run at all, even onload. I've tried a bunch of different 'if' scenarios but can't get it to work. Hopefully someone can help.. <script> $("[name='cbParamVirtual9']").change(function(){ var itid = document.getElementsByName("cbParamVirtual9")[0].value; var item = document.getElementsByName("InsertRecordItemID")[0].value if (item !== null) { document.getElementsByName("InsertRecordItemID")[0].value = itid; } } ); </script> NOTE: I ran an alert window to make sure the values in Virtual 9 are being gotten and used- they are and they are put in the ItemID field as needed on the Virtual 9 change. The problem is that when ItemID is not null on the form's load (it receives and external parameter, if there is one) the code still runs. This will overwrite the ItemID's external parameter received. Also, I'm not sure why ItemID works with getElementsbyName instead of getElementbyID because it's just a text field and not dropdown,list,cascading, etc. But the code didn't work unless I used getElementsbyName.. I think I just need to add the correct 'if' expression that runs or doesn't run the 'Change' function next. <script> var item = document.getElementsByName("InsertRecordItemID")[0].value; <!-- right here I need an if (item !== null) to then run the change(function(){ but that if it's not null to not run the change(function(){ --> $("[name='cbParamVirtual9']").change(function(){ var itid = document.getElementsByName("cbParamVirtual9")[0].value; document.getElementsByName("InsertRecordItemID")[0].value = itid; } ); </script>
  21. I am trying to filter datapages that are embedded within a page that I show within an iframe and I can not seem to get the parameters to pass into the I-Frame when the parent page is loaded. I have a "Project" report with custom link to details page. This link passes Project_ID fine to datapages actually embedded on the target page. What I want to do is embed other pages (hosted on same domain) via IFrame and have the results of datapages embedded on the page shown in iframe filtered by the Project_ID. I want to use I frames to reduce load time, data usage and also have the ability to refresh specific datapages when editing data. Again, the parent page that hosts the Iframe is receiving the parameter fine, i just can not get the DPs within the embedded page to see the passed parameter. Much help in advance!
  22. I'm trying to hide a tabular report if a given comparison returns as false. I have the below code that works to hide the table no matter the result: <script language="javascript" type="text/javascript"> function hide_column(column_order) { var tbl = document.getElementsByTagName("table")[0]; var table_header = tbl.getElementsByTagName('th')[column_order]; table_header.style.display=stl; var rows = tbl.getElementsByTagName('tr'); for (var row=1; row<rows.length;row++) { var cels = rows[row].getElementsByTagName('td'); cels[column_order].style.display=stl; } } var stl='none'; hide_column(0); hide_column(1); hide_column(2); hide_column(3); hide_column(4); hide_column(5); hide_column(6); </script> However, If I'm adding a restriction var string = "[@authfield:Authentications_2_Region]", substring = "[@field:Location_2_Region_GL]"; if(string.includes(substring)=false) I don't know where to put it; I've tried putting it everywhere and can't get it to work right. Full disclosure: I'm not good with Javascript and may be way off the mark on the formatting...I'm trying to piece this together with W3 Schools and Google.
  23. I use a script in the footer of every datapage to have the tab header include my logo & the name of the datapage. What I need now is for the tab header to also include a string field from the datapage...how do I do that?Current footer code is:<script>var v_link = document.createElement('link');v_link.setAttribute("href", "http://login.zalipresents.com/wp-content/uploads/2015/09/Zali_logo_Z_Tab_Icon.png");v_link.setAttribute("rel", "shortcut icon");document.head.appendChild(v_link);</script>I'd like to have the tab label read: Z (logo inserted like screen shot) WORKING - [Artist]...i'd like this artist name to also show up in the little box that pops up when you hover over the Z or WORKING. Any suggestions? The field is called "Artist"
  24. I'm trying to get some js to work with a Virtual field (currently set to a list box with 3 choices) when the selection changes (i.e. when the user clicks on choice 1,2,or 3 in the list of the Virtual field). I was able to get the rest of the code to work using a button but I'd like it to work directly when the user changes the selection in the listbox of the Virtual field. Here's what I've got so far. It's the onchange part I need help with: <div style="text-align: center;"> <script> $("[name='cbParamVirtual1']").change(function(){ var dtid = document.getElementsByName("cbParamVirtual1")[0].value; if (dtid == 1){ document.getElementById("InsertRecordMyField2").value = ""; document.getElementById("InsertRecordMyField3").value = ""; } else if (dtid == 2){ document.getElementById("InsertRecordMyField1").value = ""; document.getElementsByName("InsertRecordMyField3")[0].value = ""; } else if (dtid == 3){ document.getElementsByName("InsertRecordMyField1")[0].value = ""; document.getElementById("InsertRecordMyField2").value = ""; } } </script> </div> One thing also- I would prefer the Virtual field to actually be a real field (I couldn't get the var 'dtid' to work with a regular field though) that's a Radio button instead of a list- so that's the ultimate goal of this code. But just getting it to work with a Virtual field Listbox using 'change' would be a big help. Thanks- UPDATE: I am working through the process in steps on this datapage and just added virtual fields that use the MyField1,2,3 as the Parent fields for Cascading Text (on the Virtual field). This seems to disable the code above (perhaps because of the MyField1,2,3 is 'null' there can't be a cascade?). Any help with incorporating this into the code would be great as well.
  25. ANY help would be greatly appreciated!!!! Okay, I have a script that I think should work, but I can't get it to function....Here it is: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> <script> $("#caspioform").submit( function() { var selectedopts = $('[name=cbParamVirtual1]').getChildren(); for(i=0;i<selectedopts.length;i++) { if(selectedopts[i].val() == '') { return false; } } }); </script> The script is trying to validate the input (into a text field via barcode scanner) against a hidden dropdown (virtual field "cbParamVirtual1").... Event handler question/issues: CURRENTLY, the barcode scanner, as it scans, it hits "enter" (like a keyboard enter, I think) at the same time submitting the form I need the above code to keep it from submitting if the value isn't in the dropdown Is ".submit" the correct event handler for this? ...or do I use ".keypress"? maybe something else? Location of script question Do I put the script in the form's footer or header...or should I put this in the header of the webpage where it's embeded? I'm confused about when to use the form's header/footer vs the webpage header One more detail that I left out is that I have an iframe code deployed in the footer of the form...it's the only way I could get a report to update as the form (also in an iframe) is submitted....it works well, even though I've read you can't deploy inside another datapage.... that seems doesn't seem to hold true with iframes. However, would I need to change the form name above if I have the 2nd datapage deployed in the footer of the form????
×
×
  • Create New...