Hello everyone! I'm trying to create a dashboard and set some tokens through javascript. I have some html text inputs and I want that, on the click of a button, they set the corresponding tokens to the inputted value. However, when I try to click again the button, the click event doesn't trigger. Can you help me? require([
'underscore',
'jquery',
'splunkjs/mvc',
'splunkjs/mvc/simplexml/ready!'
], function (_, $, mvc) {
function setToken(name, value) {
mvc.Components.get("default").set(name, value);
mvc.Components.get('submitted', {create: true}).set(name, value);
}
/* ----------------------- */
let prefix = mvc.Components.get("default").get('personal_input_prefix') ?? "personal_";
// Setting tokens for Inputs with prefix ${prefix}
$('#personal_submit').on('click', function(e){
e.preventDefault();
console.log("CLICKED");
let input_text = $("input[type=text]");
for (let element of input_text) {
let id = element.id;
if (id !== undefined && id.startsWith(prefix)){
let value = element.value;
setToken(`${id}_token`, value); // <---
document.getElementById(`${id}_token_id`).innerHTML = value;
// Set token ${id}_token to value ${value}
}
}
});
}); DASHBOARD EXAMPLE: <form version="1.1" theme="light" script="test.js">
<label>Dashboard test</label>
<row>
<panel>
<html>
<input id="personal_valueA" type="text"/>
<input id="personal_valueB" type="text"/>
<button id="personal_submit" class="primary-btn">Click</button>
<br/>
Show:
<p id="personal_valueA_token_id">$personal_valueA_token$</p>
<p id="personal_valueA_token_id">$personal_valueB_token$</p>
</html>
</panel>
</row>
</form>
... View more