Use the same onChange() in catalog client script
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-18-2024 08:10 PM
<p><span>Hello Community,</span></p>
<p><span>there is a catalog item, I hava four variables in it, and they use the same onChange() in <em>catalog client script</em>,</span></p>
<p>( The same code is used in each of the <span><em>catalog client script</em> </span>in these four variables<span> </span>)</p>
<p>Can I put this same code in one place and then reference it in my <em>catalog client script</em>? How can I do that and where should I put these same codes?</p>
<p> </p>
<p>Here is my catalog client script:</p>
<li-code lang="javascript">function onChange(control, oldValue, newValue, isLoading) {
if (isLoading) {
return;
}
var flag = g_form.getValue("shinseishubetsu");
var u_system_code = g_form.getValue("system_code");
var u_kankyou = g_form.getValue("kankyou");
var u_kyoten = g_form.getValue("kyoten");
var u_tsuushinbattern = g_form.getValue("tsuushinbattern");
var u_botalriyouyouto = g_form.getValue("botalriyouyouto");
var varSetFlag = u_system_code && u_kankyou && u_kyoten && u_tsuushinbattern && u_botalriyouyouto;
var my_var = g_form.getField("var_set_0814");
if (varSetFlag) {
my_var.max_rows_size = 50;
} else {
my_var.max_rows_size = 0;
}
if (flag == "henkou") {
var ga = new GlideAjax("x_1443635_shinsei.getListRecord");
ga.addParam('sysparm_name', 'populateMRVS');
ga.addParam('sysparm_system_code', u_system_code);
ga.addParam('sysparm_kankyou', u_kankyou);
ga.addParam('sysparm_kyoten', u_kyoten);
ga.addParam('sysparm_tsuushinbattern', u_tsuushinbattern);
ga.addParam('sysparm_botalriyouyouto', u_botalriyouyouto);
ga.getXML(returnMRVS);
}
function returnMRVS(response) {
var oldVarSetStr = g_form.getValue("var_set_0814") || '[]';
var oldVarSetArr = JSON.parse(oldVarSetStr);
var newVarSetArr = [];
for (var i = 0; i < oldVarSetArr.length; i++) {
if (!oldVarSetArr[i].sys_id) {
newVarSetArr.push(oldVarSetArr[i]);
}
}
var answerStr = response.responseXML.documentElement.getAttribute("answer");
var answerArr = JSON.parse(answerStr).concat(newVarSetArr);
g_form.setValue('var_set_0814', JSON.stringify(answerArr));
}
}</li-code>
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-24-2024 03:34 AM
For your next questions, can you please don't post them full of HTML tags? It makes it very difficult to read.
But no, you will need to apply the script in each client script to have it worked.
Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark