We’re trying to run a js function, after a page is loaded. It as intended when I call it from the console. It also works if I add
<script>
$( document ).ready(function() {sectionhideshow()});
</script>
To the html/handlebar. It does not work if I add this to the customPromptTypes.js
Any ideas?
1 Like
Hi @Simon_Hess! This is not my area of expertise, but from using the customPromptTypes.js, it really is designed for prompts. So I have used it to do things like take a random sample based on the number of students in a classroom through a custom sample prompt. I don’t think it is meant to just run a function without a prompt.
Oh ok. That sounds reasonable. I’m just having a heard time wrapping my head around why this does not work. I think ODK-Xs internals are still a bit of a mystery to me, and the docs are not really helping in this. But thanks for your (frequent) support in solving my issues.
1 Like
I think custom prompt types expose an afterRender
property that can be used to trigger functions as you describe. E.g. if you have custom prompts something like this
define(["promptTypes", "jquery", "require"], function (promptTypes, $, r) {
return {
example_custom_prompt: promptTypes.input_type.extend({
templatePath: "some/template/path",
afterRender: function () {
// add the code/function you need here to trigger after render
},
}),
For understanding the internals of the custom prompts I think you can look into the docs for requireJS, or for the HTML files they are rendered using handlebars as you mentioned
2 Likes