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");