diff --git a/controllers/player.py b/controllers/player.py
index 92dd1ac03f2ebb0e5ddc39894c7c5e8f5f3ed8b2..b1d6f0e578b04351923bce8eb47ee6728d9852e7 100644
--- a/controllers/player.py
+++ b/controllers/player.py
@@ -74,13 +74,21 @@ def submit():
     if not JSON_CONTAINS(parameters, [('submit', str)]):
         return(FAIL(CODE_MISSING))
 
+    parameters["submit"] = ''.join(c for c in parameters["submit"] if c.isalnum())
+
     new_input = {"submit": parameters["submit"]}
 
     if JSON_CONTAINS(parameters, [('inputs', dict)]):
         inputs = parameters["inputs"]
         for key in inputs:
-            if not isinstance(inputs[key], str):
+
+            keytest = ''.join(c for c in key if c.isalnum())
+
+            if (not isinstance(inputs[key], str)) or (keytest != key):
                 return(FAIL(CODE_MISSING))
+
+            inputs[key] = ''.join(c for c in inputs[key] if (c.isalnum() or c == " "))
+
         new_input["inputs"] = inputs
 
     #Insert new input into table
diff --git a/static/game/debug/renderer.js b/static/game/debug/renderer.js
index bacab2301764c55dcccf94c34b3bb3214944580b..4a5f1e9fc2c0a025dfdb5138fe6a2dfc01211ef0 100644
--- a/static/game/debug/renderer.js
+++ b/static/game/debug/renderer.js
@@ -77,13 +77,20 @@ function renderRole(_definition, _roleIdle) {
             case "input":
                 e = $("<input class='game_input' type='text'/>");
                 e.attr("placeholder", value);
+                if(!prompt) {
+                    e.attr("disabled", "true");
+                }
                 break;
             case "submit":
                 e = $("<input class='game_input' type='submit'/>");
                 e.val(value);
-                e.click(function(){
-                    submit(e);
-                });
+                if(!prompt) {
+                    e.attr("disabled", "true");
+                } else {
+                    e.click(function(){
+                        submit(e);
+                    });
+                }
                 break;
             default:
                 e = $("<span>Invalid Element</span>");
@@ -102,23 +109,38 @@ function sanitizeCSS(_css) {
 }
 
 function submit(_button) {
-    var submit = {"inputs": []};
+    var submit = {};
+    var inputs = {};
 
-    var inputs = $("#game_content .game_input").each(function(index, element) {
+    $("#game_content .game_input").each(function(index, element) {
         element.setAttribute("disabled", "true");
 
-        var obj = {};
-        obj[element.getAttribute("name")] = element.value;
-
         switch(element.getAttribute("type")) {
             case "text":
-                submit["inputs"].push(obj);
+                inputs[element.getAttribute("name")] = element.value.replace(/[^0-9a-zA-Z\s]/g, '');;
                 break;
         }
     });
 
     submit["submit"] = _button.attr("name");
-
-    //JSON.stringify(submit)
-    alert(URL_SUBMIT);
+    submit["inputs"] = inputs;
+
+    AJAX_JSON(URL_SUBMIT, submit, function(_code, _data) {
+        switch(_code) {
+            case 200:
+            case 409:
+                currentPrompt++;
+                if(prompts[currentPrompt]) {
+                   render(role, roles);
+                }
+                break;
+            case 401:
+            case 410:
+                content_reload();
+                break;
+            default:
+                set_error(_data);
+                break;
+        }
+    });
 }
diff --git a/views/game/index.html b/views/game/index.html
index 74185a020b10fd1eeea1a39fbac0467ec73599f9..e0872ed01c64c0dc85f183f522229ecaa0a8cf7f 100644
--- a/views/game/index.html
+++ b/views/game/index.html
@@ -17,8 +17,8 @@
     {{ include 'include/consts.js' }}
     var role = "{{=player_record.role}}";
     var roles = JSON.parse(atob('{{=XML(room_record.roles)}}'));
-    var prompts = JSON.parse(atob('{{=XML(player_record.prompts)}}'));;
-    var currentPrompt = 0;
+    var prompts = JSON.parse(atob('{{=XML(player_record.prompts)}}'));
+    var currentPrompt = JSON.parse(atob('{{=XML(player_record.inputs)}}')).length;
 </script>
 
 {{block game_js}}{{end game_js}}