Skip to content

Commit 3654c47

Browse files
authored
Implement CI validation on change event
1 parent 5187a02 commit 3654c47

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
function onChange(control, oldValue, newValue, isLoading) {
2+
if (isLoading) return;
3+
4+
var VAR_NAME = 'ci'; // replace with your CI variable name
5+
6+
// Clear old messages and re-enable submit by default
7+
g_form.clearMessages();
8+
if (g_form.setSubmitEnabled) g_form.setSubmitEnabled(true);
9+
10+
var ciSysId = g_form.getValue(VAR_NAME);
11+
if (!ciSysId) return;
12+
13+
var ga = new GlideAjax('CIValidationAjax');
14+
ga.addParam('sysparm_name', 'validateCi');
15+
ga.addParam('sysparm_ci', ciSysId);
16+
17+
ga.getXMLAnswer(function(answer) {
18+
try {
19+
var res = JSON.parse(answer || '{}');
20+
if (res.valid) {
21+
g_form.addInfoMessage('CI is valid and supported: ' + (res.display || ciSysId));
22+
} else {
23+
g_form.addErrorMessage(res.message || 'Selected CI is not valid for this request.');
24+
if (g_form.setSubmitEnabled) g_form.setSubmitEnabled(false);
25+
}
26+
} catch (e) {
27+
g_form.addErrorMessage('Validation failed. Please try again or choose another CI.');
28+
if (g_form.setSubmitEnabled) g_form.setSubmitEnabled(false);
29+
}
30+
});
31+
}

0 commit comments

Comments
 (0)