diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java index cf758f12027a476f7e6bc598721c50d20e266dfc..1c372f7a7bfa69a36f016b09c2578a9c18ea3c6f 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java @@ -1263,7 +1263,6 @@ public class AssessmentTestDisplayController extends BasicController implements @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { mainForm.setMultipartEnabled(true); - mainForm.setOnSubmitCallback("QtiWorksRendering.maySubmit();"); FormSubmit submit = uifactory.addFormSubmitButton("submit", formLayout); submit.setElementCssClass("o_sel_assessment_item_submit"); diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java index 65b64235fbbd299c9ba1cc7a4b74ac686800b2de..0ece50676f87b2a91650110a6e7213f1a36c0c87 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java @@ -967,8 +967,9 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent ResponseDeclaration responseDeclaration = getResponseDeclaration(assessmentItem, interaction.getResponseIdentifier()); String checkJavascript = checkJavaScript(responseDeclaration, interaction.getPatternMask()); if(StringHelper.containsNonWhitespace(checkJavascript)) { - sb.append(" onchange=\"").append(checkJavascript).append("\">"); + sb.append(" onchange=\"").append(checkJavascript).append("\""); } + sb.append(">"); if(renderer.isSolutionMode()) { String placeholder = interaction.getPlaceholderText(); @@ -980,6 +981,12 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent } sb.append("</textarea>"); FormJSHelper.appendFlexiFormDirty(sb, component.getQtiItem().getRootForm(), responseUniqueId); + sb.append(FormJSHelper.getJSStartWithVarDeclaration(responseUniqueId)) + //plain textAreas should not propagate the keypress "enter" (keynum = 13) as this would submit the form + .append(responseUniqueId).append(".on('keypress', function(event, target){if (13 == event.keyCode) {event.stopPropagation()} })") + .append(FormJSHelper.getJSEnd()); + + } protected abstract void renderPrintedVariable(AssessmentRenderer renderer, StringOutput sb, diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java index 1565f28ca8ecb25fb27ac42046c9cd3289332881..caa34803e7ccd9a0bfa1d4991fac74bf761477d1 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderFunctions.java @@ -505,7 +505,9 @@ public class AssessmentRenderFunctions { checks.add(patternMask); } - if(checks == null || checks.isEmpty()) return "()"; + if(checks == null || checks.isEmpty()) { + return null; + } StringBuilder out = new StringBuilder(128); out.append("QtiWorksRendering.validateInput(this");