Skip to content

Commit ec3c659

Browse files
committed
added HTML attribute data-nette-error
1 parent 0e76345 commit ec3c659

File tree

5 files changed

+16
-15
lines changed

5 files changed

+16
-15
lines changed

Diff for: src/Forms/Controls/BaseControl.php

+1
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ public function getControl(): Html|string
235235
'required' => $this->isRequired(),
236236
'disabled' => $this->isDisabled(),
237237
'data-nette-rules' => Nette\Forms\Helpers::exportRules($this->rules) ?: null,
238+
'data-nette-error' => $this->hasErrors(),
238239
]);
239240
}
240241

Diff for: tests/Forms.Latte3/expected/forms.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
<input type="hidden" name="id" value="" title="Hello" size="10">
99

1010
<label for="frm-username">Username:</label>
11-
<input type="text" name="username" size="10" class="control-class" id="frm-username" title="Hello">
11+
<input type="text" name="username" size="10" class="control-class" id="frm-username" data-nette-error title="Hello">
1212
error
1313

1414
<br>
1515

16-
<label for="frm-username" title="hello"> <input type="text" name="username" size="10" class="control-class" id="frm-username" title="Hello"> </label>
16+
<label for="frm-username" title="hello"> <input type="text" name="username" size="10" class="control-class" id="frm-username" data-nette-error title="Hello"> </label>
1717
error
1818
<label for="frm-select"></label>
1919
<select name="select" size="10" id="frm-select" title="Hello"><option value="m">male</option><option value="f">female</option></select>
@@ -43,11 +43,11 @@
4343
<label for="frm-username">Username:</label>
4444

4545
<LABEL for="frm-username" title=hello>Name</LABEL>
46-
<input value=val type class="hello" name="username" id="frm-username">
46+
<input value=val type class="hello" name="username" id="frm-username" data-nette-error>
4747

4848
<label for="frm-username"></label>
4949
<label for="frm-username">Username:</label>
50-
<input type="text" name="username" class="control-class" id="frm-username">
50+
<input type="text" name="username" class="control-class" id="frm-username" data-nette-error>
5151

5252
<label>My</label><input name=My>
5353
</form>
@@ -89,17 +89,17 @@
8989

9090

9191
<form action="" method="post" id="myForm" class="ajax">
92-
<input type="text" name="username" class="control-class" id="frm-username">
92+
<input type="text" name="username" class="control-class" id="frm-username" data-nette-error>
9393
<input type="hidden" name="id" value=""></form>
9494

9595

9696
<form action="" method="post" class="nclass">
97-
<input type="text" name="username" id="frm-username" class="nclass">
97+
<input type="text" name="username" id="frm-username" data-nette-error class="nclass">
9898
<input type="hidden" name="id" value=""></form>
9999

100100

101101
<FORM action="" method="post" class="form-class">
102-
<input type="text" name="username" class="control-class" id="frm-username">
102+
<input type="text" name="username" class="control-class" id="frm-username" data-nette-error>
103103
<input type="hidden" name="id" value=""></FORM>
104104

105105

Diff for: tests/Forms/expected/Forms.renderer.1.expect

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<tr class="required">
1515
<th><label for="frm-age" class="required">Your age:</label></th>
1616

17-
<td><input type="number" name="age" min="10" max="100" id="frm-age" required data-nette-rules='[{"op":":filled","msg":"Enter your age"},{"op":":integer","msg":"Please enter a valid integer."},{"op":":range","msg":"Age must be in range from 10 to 100","arg":[10,100]}]' class="text">
17+
<td><input type="number" name="age" min="10" max="100" id="frm-age" required data-nette-rules='[{"op":":filled","msg":"Enter your age"},{"op":":integer","msg":"Please enter a valid integer."},{"op":":range","msg":"Age must be in range from 10 to 100","arg":[10,100]}]' data-nette-error class="text">
1818
<span class="error">Enter your age</span></td>
1919
</tr>
2020

@@ -54,14 +54,14 @@
5454
<tr>
5555
<th><label for="frm-city">City:</label></th>
5656

57-
<td><input type="text" name="city" id="frm-city" data-nette-rules='[{"op":":equal","rules":[{"op":":filled","msg":"Enter your shipping address"}],"control":"send","arg":true}]' class="text">
57+
<td><input type="text" name="city" id="frm-city" data-nette-rules='[{"op":":equal","rules":[{"op":":filled","msg":"Enter your shipping address"}],"control":"send","arg":true}]' data-nette-error class="text">
5858
<span class="error">Enter your shipping address</span></td>
5959
</tr>
6060

6161
<tr>
6262
<th><label for="frm-country">Country:</label></th>
6363

64-
<td><select name="country" id="frm-country" data-nette-rules='[{"op":":equal","rules":[{"op":":filled","msg":"Select your country"}],"control":"send","arg":true}]'><option value="">Select your country</option><optgroup label="Europe"><option value="CZ">Czech Republic</option><option value="SK">Slovakia</option><option value="GB">United Kingdom</option></optgroup><option value="CA">Canada</option><option value="US">United States</option><option value="?">other</option></select>
64+
<td><select name="country" id="frm-country" data-nette-rules='[{"op":":equal","rules":[{"op":":filled","msg":"Select your country"}],"control":"send","arg":true}]' data-nette-error><option value="">Select your country</option><optgroup label="Europe"><option value="CZ">Czech Republic</option><option value="SK">Slovakia</option><option value="GB">United Kingdom</option></optgroup><option value="CA">Canada</option><option value="US">United States</option><option value="?">other</option></select>
6565
<span class="error">Select your country</span></td>
6666
</tr>
6767

@@ -81,7 +81,7 @@
8181
<tr class="required">
8282
<th><label for="frm-password" class="required">Choose password:</label></th>
8383

84-
<td><input type="password" name="password" id="frm-password" required data-nette-rules='[{"op":":filled","msg":"Choose your password"},{"op":":minLength","msg":"The password is too short: it must be at least 3 characters","arg":3}]' class="text"><input type="password" name="password2" id="frm-password2" data-nette-rules='[{"op":":valid","rules":[{"op":":filled","msg":"Reenter your password"},{"op":":equal","msg":"Passwords do not match","arg":{"control":"password"}}],"control":"password"}]' class="text"><input type="file" name="avatar" id="frm-avatar" data-nette-rules='[{"op":":fileSize","msg":"The size of the uploaded file can be up to %d% bytes.","arg":%d%},{"op":":filled","rules":[{"op":":image","msg":"Uploaded file is not image","arg":["image/gif","image/jpeg","image/png","image/webp"%a?%]}],"control":"avatar"}]' class="text">
84+
<td><input type="password" name="password" id="frm-password" required data-nette-rules='[{"op":":filled","msg":"Choose your password"},{"op":":minLength","msg":"The password is too short: it must be at least 3 characters","arg":3}]' class="text"><input type="password" name="password2" id="frm-password2" data-nette-rules='[{"op":":valid","rules":[{"op":":filled","msg":"Reenter your password"},{"op":":equal","msg":"Passwords do not match","arg":{"control":"password"}}],"control":"password"}]' data-nette-error class="text"><input type="file" name="avatar" id="frm-avatar" data-nette-rules='[{"op":":fileSize","msg":"The size of the uploaded file can be up to %d% bytes.","arg":%d%},{"op":":filled","rules":[{"op":":image","msg":"Uploaded file is not image","arg":["image/gif","image/jpeg","image/png","image/webp"%a?%]}],"control":"avatar"}]' class="text">
8585
<span class="error">Reenter your password</span></td>
8686
</tr>
8787

Diff for: tests/Forms/expected/Forms.renderer.2.expect

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
<dt><label for="frm-age" class="required">Your age:</label></dt>
1515

16-
<dd class="odd"><input type="number" name="age" min="10" max="100" id="frm-age" required data-nette-rules='[{"op":":filled","msg":"Enter your age"},{"op":":integer","msg":"Age must be numeric value"},{"op":":range","msg":"Age must be in range from 10 to 100","arg":[10,100]}]' value="9.9" class="text is-invalid"> •
16+
<dd class="odd"><input type="number" name="age" min="10" max="100" id="frm-age" required data-nette-rules='[{"op":":filled","msg":"Enter your age"},{"op":":integer","msg":"Age must be numeric value"},{"op":":range","msg":"Age must be in range from 10 to 100","arg":[10,100]}]' data-nette-error value="9.9" class="text is-invalid"> •
1717
<span class="error">Age must be numeric value</span></dd>
1818

1919

2020

2121
<dt><label for="frm-gender">Your gender:</label></dt>
2222

23-
<dd><select name="gender" id="frm-gender" class="is-invalid"><option style="color: #248bd3" value="m">male</option><option style="color: #e948d4" value="f">female</option></select>
23+
<dd><select name="gender" id="frm-gender" data-nette-error class="is-invalid"><option style="color: #248bd3" value="m">male</option><option style="color: #e948d4" value="f">female</option></select>
2424
<span class="error">Please select a valid option.</span></dd>
2525

2626

@@ -73,7 +73,7 @@
7373

7474
<dt><label for="frm-password" class="required">Choose password:</label></dt>
7575

76-
<dd class="multi"><input type="password" name="password" id="frm-password" required data-nette-rules='[{"op":":filled","msg":"Choose your password"},{"op":":minLength","msg":"The password is too short: it must be at least 3 characters","arg":3}]' class="text is-invalid"><input type="password" name="password2" id="frm-password2" data-nette-rules='[{"op":":valid","rules":[{"op":":filled","msg":"Reenter your password"},{"op":":equal","msg":"Passwords do not match","arg":{"control":"password"}}],"control":"password"}]' class="text"> • <small>(at least 3 characters)</small>
76+
<dd class="multi"><input type="password" name="password" id="frm-password" required data-nette-rules='[{"op":":filled","msg":"Choose your password"},{"op":":minLength","msg":"The password is too short: it must be at least 3 characters","arg":3}]' data-nette-error class="text is-invalid"><input type="password" name="password2" id="frm-password2" data-nette-rules='[{"op":":valid","rules":[{"op":":filled","msg":"Reenter your password"},{"op":":equal","msg":"Passwords do not match","arg":{"control":"password"}}],"control":"password"}]' class="text"> • <small>(at least 3 characters)</small>
7777
<span class="error">The password is too short: it must be at least 3 characters</span></dd>
7878

7979

Diff for: tests/Forms/expected/Forms.renderer.translate.expect

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<tr class="required">
1616
<th><label for="frm-password" class="required">PASSWORD</label></th>
1717

18-
<td><input type="password" name="password" id="frm-password" required data-nette-rules='[{"op":":filled","msg":"THIS FIELD IS REQUIRED."},{"op":":minLength","msg":"MINIMAL LENGTH IS %D CHARS","arg":8}]' class="text">
18+
<td><input type="password" name="password" id="frm-password" required data-nette-rules='[{"op":":filled","msg":"THIS FIELD IS REQUIRED."},{"op":":minLength","msg":"MINIMAL LENGTH IS %D CHARS","arg":8}]' data-nette-error class="text">
1919
<span class="error">WEAK PASSWORD</span></td>
2020
</tr>
2121

0 commit comments

Comments
 (0)