Form validation rule error shown without any validation rules

I was not referring to removing it from the folder. Just from the page.
If it keeps getting added some validation is used somewhere on the page.

I really need to access your site and test - is it possible to provide access to my IP address?

i will try to recreate the issue in the weekend so i can share it with you.

Is there any way you could upload a copy of your index.php page or whatever it is called so we can take a look at the entire page with all the code in it, if it is sensitive then just PM it to me if you like. You might have to zip the file to attach it.

@Teodor, just out of interest could this work using the novalidate attribute, and then the js file can be kept in the folder and the js reference in the head could also remain?

<form is="dmx-serverconnect-form" id="serverconnectform1" method="post" action="dmxConnect/api/Data/Exam/Exam_Insert.php" dmx-generator="bootstrap4" dmx-form-type="horizontal" dmx-multi="true" dmx-populate="exam_select.data.query1" dmx-on:success="notifies1.success(&quot;Saved!&quot;)" dmx-on:error="notifies1.warning(&quot;Oops! something went wrong, please try again or contact the admin&quot;)" novalidate="true">

with this is, it does not show the red cross anymore, only the green check mark is then shown.

As soon i got some time for it i’ll try to generalize some stuff in the code so i can share it.

There should be something wrong on your page, as this should not be required.
I need to inspect your page to be able to answer why is this happening.

Agreed, there is certainly some remnant somewhere of validation, so my idea of a fix is really more of a hack, but not the right fix in the end of the day.

@pheaxx, out of interest change, it might do something ever so slightly different but not certain.

novalidate="novalidate"
to
novalidate="true"

both ways give the same result.

As soon i got some time for it i’ll try to generalize some stuff in the code so i can share it

Sorry for the delay, recuirements changed, so the code has become not needed anymore. but for improvement and knowing what went wrong i’m still sharing it:

<?php
require('dmxConnectLib/dmxConnect.php');

$app = new \lib\App();

$app->exec(<<<'JSON'
{
	"steps": [
		"Connections/DB_Connection",
		"SecurityProviders/Login",
		{
			"module": "auth",
			"action": "restrict",
			"options": {"loginUrl":"Login.html","forbiddenUrl":"index.html","provider":"Login"}
		}
	]
}
JSON
, TRUE);
?>

<!doctype html>
<html><head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="UTF-8">
  <title>Progress Training</title>
  <script src="dmxAppConnect/dmxAppConnect.js"></script>
  <script src="js/jquery-3.3.1.slim.min.js"></script>
  <link rel="stylesheet" href="fontawesome4/css/font-awesome.min.css">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="stylesheet" href="bootstrap/4/css/bootstrap.min.css">
  <link rel="stylesheet" href="dmxAppConnect/dmxBootstrap4TableGenerator/dmxBootstrap4TableGenerator.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js" integrity="sha256-CutOzxCRucUsn6C6TcEYsauvvYilEniTXldPa6/wu0k=" crossorigin="anonymous"></script>
  <script src="dmxAppConnect/dmxBootstrap4PagingGenerator/dmxBootstrap4PagingGenerator.js" defer=""></script>
  <script src="dmxAppConnect/dmxBootstrap4Navigation/dmxBootstrap4Navigation.js" defer=""></script>
  <script src="dmxAppConnect/dmxBootstrap4Modal/dmxBootstrap4Modal.js" defer=""></script>
  <script src="dmxAppConnect/dmxStateManagement/dmxStateManagement.js" defer=""></script>
  <script src="dmxAppConnect/dmxFormatter/dmxFormatter.js" defer=""></script>
  <script src="dmxAppConnect/dmxDataTraversal/dmxDataTraversal.js" defer=""></script>
  <script src="dmxAppConnect/dmxBrowser/dmxBrowser.js" defer=""></script>
  <link rel="stylesheet" href="dmxAppConnect/dmxNotifications/dmxNotifications.css">
  <script src="dmxAppConnect/dmxNotifications/dmxNotifications.js" defer=""></script>
  <link rel="stylesheet" href="dmxAppConnect/dmxValidator/dmxValidator.css">
  <script src="dmxAppConnect/dmxValidator/dmxValidator.js" defer=""></script>
  <link rel="stylesheet" href="dmxAppConnect/dmxDatePicker/daterangepicker.min.css">
  <script src="dmxAppConnect/dmxDatePicker/daterangepicker.min.js" defer=""></script>
  <link rel="stylesheet" href="dmxAppConnect/dmxDatePicker/dmxDatePicker.css">
  <script src="dmxAppConnect/dmxDatePicker/dmxDatePicker.js" defer=""></script>
  </head>
  <body is="dmx-app" id="Dashboard">
    <dmx-notifications id="notifies1"></dmx-notifications>
    <?php include 'Header.php';?>
    <dmx-serverconnect id="UserDetails" url="dmxConnect/api/Security/UserDetails.php" ttl="3600"></dmx-serverconnect>
    <dmx-serverconnect id="SelectClass" url="dmxConnect/api/Data/Attendees/SelectClass.php" dmx-param:usrcountry="UserDetails.data.query1[0].country" ttl="3600"></dmx-serverconnect>
    <dmx-serverconnect id="viewClass" url="dmxConnect/api/Data/Attendees/ViewClass.php" dmx-param:usrcountry="UserDetails.data.query1[0].country" dmx-param:class="Exit.selectExitClass.value" ttl="3600"></dmx-serverconnect>
    <dmx-serverconnect id="exam_select" url="dmxConnect/api/Data/Exam/Exam_Select.php" dmx-param:classfilter="exam.select3.value" dmx-param:usrcountry="UserDetails.data.query1[0].country" ttl="3600"></dmx-serverconnect>
    <dmx-serverconnect id="exit_select" url="dmxConnect/api/Data/Exit/Exit_Select.php" dmx-param:usrcountry="UserDetails.data.query1[0].country" dmx-param:class="Exit.selectExitClass.value"></dmx-serverconnect>
    <div class="container">
      <div class="row h-auto">
        <div class="col text-center offset-0 align-self-center border" dmx-on:click="exam.show()">
          <a data-target="#exam"><img src="Assets/target.jpg" class="img-fluid" width="200px"></a>
          <h1>Exam</h1></div>
        <div class="col text-center offset-0 align-self-center border">
          <a data-toggle="modal" data-target="#Exit"><img src="Assets/caution.jpg" class="img-fluid" width="200px"></a>
          <h1>Exit</h1></div>
      </div>
      <div class="row h-auto"><div class="col text-center offset-0 align-self-center border">
        <a href="Behavior.php"><img src="Assets/spreadsheet.jpg" class="img-fluid" width="200px"></a>
        <h1>Behavior</h1></div><div class="col text-center offset-0 align-self-center border">
        <a href="Attendees.php"><img src="Assets/group.jpg" class="img-fluid" width="200px"></a>
        <h1>Class Overview</h1></div>
      </div>
      <div class="row h-auto"><div class="col text-center offset-0 align-self-center border">
        <a><img src="Assets/inventory.jpg" class="img-fluid" width="200px"></a>
        <h1>Evaluation</h1></div><div class="col text-center offset-0 align-self-center border">
        <a><img src="Assets/documents.jpg" class="img-fluid" width="200px"></a>
        <h1>File</h1></div>
      </div>
    </div>
    <div class="modal" id="exam" is="dmx-bs4-modal" tabindex="-1" role="dialog" nocloseonclick="true">
      <div class="modal-dialog modal-xl modal-dialog-centered" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title">Exam results</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">×</span>
            </button>
          </div>
          <div class="modal-body">
            <div class="container mb-4">
              <div class="row">
                <div class="col">
                  <select id="select3" class="form-control" dmx-bind:options="SelectClass.data.query1" optiontext="classname" optionvalue="classname" name="Class1" dmx-on:click="exam.update()">
                  </select></div>
                <div class="col"></div>
              </div>
            </div>
            <div class="container">
              <form is="dmx-serverconnect-form" id="serverconnectform1" method="post" action="dmxConnect/api/Data/Exam/Exam_Insert.php" novalidate="true" dmx-generator="bootstrap4" dmx-form-type="horizontal" dmx-multi="true" dmx-populate="exam_select.data.query1" dmx-on:success="notifies1.success(&quot;Saved!&quot;)" dmx-on:error="notifies1.warning(&quot;Oops! something went wrong, please try again or contact the admin&quot;)">
                <div class="form-row">
                  <div class="col-sm-3">
                    <h5>Name</h5>
                  </div>
                  <div class="col">
                    <h5>&nbsp;Grade</h5>
                  </div>
                  <div class="col">
                    <h5>&nbsp; Grade by trainer</h5>
                  </div>
                </div>
                <div id="record" is="dmx-repeat" dmx-bind:repeat="exam_select.data.query1"><div class="form-group row">
                  <div class="col-sm-3">
                    <input type="text" class="form-control form-control-plaintext" id="inp_Name" name="Name" dmx-bind:name="record[{{$index}}][Name]" dmx-bind:value="Name" aria-describedby="inp_Name_help" placeholder="Enter Name" readonly="true">
                  </div>
                  <div class="col">
                    <input type="number" class="form-control" id="inp_grade" name="grade" aria-describedby="inp_b_skill_help" placeholder="Enter B skill" dmx-on:keydown="exam.serverconnectform1.inp_b_skill.setValue($value)" value="0" dmx-bind:name="record[{{$index}}][grade]" dmx-bind:value="grade > 0 ? grade : 0"></div>
                  <div class="col">
                    <input type="number" class="form-control" id="inp_gradebytrainer" name="gradebytrainer" aria-describedby="inp_c_skill_help" placeholder="Enter C skill" dmx-bind:name="record[{{$index}}][gradebytrainer]" dmx-bind:value="gradebytrainer > 0 ? gradebytrainer : 0"></div>
                  </div>
                  <input type="hidden" name="_id" id="inp__id" dmx-bind:name="record[{{$index}}][_id]" dmx-bind:value="_id"><input type="hidden" name="PositionType" id="inp_PositionType" dmx-bind:name="record[{{$index}}][PositionType]" dmx-bind:value="PositionType">
                </div>
              </form>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary" dmx-on:click="exam.serverconnectform1.submit()">Save changes</button>
          </div>
        </div>
      </div>
    </div>
    <div class="modal" id="Exit" is="dmx-bs4-modal" tabindex="-1" role="dialog" nocloseonclick="true">
      <div class="modal-dialog modal-dialog-centered modal-xl" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title">Exit</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">×</span>
            </button>
          </div>
          <div class="modal-body">
            <div class="container mt-2 mb-2">
              <div class="row">
                <div class="col">
                  <select id="selectExitClass" class="form-control" dmx-bind:options="SelectClass.data.query1" optiontext="classname" optionvalue="classname" name="Class2">
                  </select>
                </div>
                <div class="col text-center"></div>
                <div class="col text-right"></div>
              </div></div>
            <div class="container">
              <div class="table-responsive">
                <table class="table table-striped">
                  <thead>
                    <tr>
                      <th>Classname</th>
                      <th>Name</th>
                      <th>Gemsemployee</th>
                      <th>Phonenumber</th>
                      <th colspan="2" class="text-center">Delete</th>
                    </tr>
                  </thead>
                  <tbody is="dmx-repeat" dmx-generator="bs4table" dmx-bind:repeat="exit_select.data.query1" id="tableRepeat1">
                    <tr>
                      <td dmx-text="classname"></td>
                      <td dmx-text="Name"></td>
                      <td dmx-text="ID > 0 ? ID : 0"></td>
                      <td dmx-text="phonenumber > 0 ? phonenumber : 0"></td>
                      <td>
                        <div class="form-check">
                          <input class="form-check-input" type="checkbox" id="inp_isExit" name="isExit" data-msg-required="" dmx-bind:name="PositionType.concat(_id)" dmx-bind:value="0">
                          <label class="form-check-label" for="inp_isExit">Is exit</label>
                        </div>
                      </td>
                      <td dmx-show="inp_isExit.checked">Cell
                        <form is="dmx-serverconnect-form" id="ExitForm" method="post" action="dmxConnect/api/Data/Exit/Exit_Insert.php" dmx-generator="bootstrap4" dmx-form-type="horizontal" dmx-bind:name="PositionType.concat(_id)" dmx-on:success="notifies1.success(&quot;Successfully Deleted&quot;);exit_select.load({})" dmx-show="inp_isExit.checked">
                          <input type="hidden" name="filledpositions_id" id="inp_filledpositions_id" dmx-bind:value="_id"><input type="hidden" name="filledpositiontype" id="inp_filledpositiontype" dmx-bind:value="PositionType"><input type="hidden" name="creator" id="inp_creator" dmx-bind:value="UserDetails.data.query1[0].username"><div class="form-group row">
                          <div class="col">
                            <input id="date1" name="date1" is="dmx-date-picker" required=""></div>
                          <div class="col-sm-4">
                            <button type="submit" class="btn btn-danger">Confirm</button></div>
                          </div>
                        </form></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          </div>
        </div>
      </div>
    </div>
    <script src="bootstrap/4/js/popper.min.js"></script>
    <script src="bootstrap/4/js/bootstrap.min.js"></script>
  </body></html>

Hello Teodor,
This is not validating…view in SPA.