required 相关问题

必需是输入元素的HTML属性,强制提供输入。

仅当按下特定命令按钮时才根据需要验证输入

我有 JSF 验证的特定用例。例如我有一个 inputText 字段: 我有 JSF 验证的特定用例。例如我有一个 inputText 字段: <p:inputText id="input" required="#{myBean.required}" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}"> <p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/> </p:inputText> 输入的值是数字(在某些情况下,它也可以是字符串,因为这是复合组件的一部分,但如果我们假设这是一个数字,则可以更好地描述问题)。此输入是表单的一部分,在表单末尾我有提交按钮: <p:commandButton value="Save" actionListener="#{myBean.save}"/> 我的要求是什么: 按下提交按钮时,应处理所有验证,这是可以的,效果很好。 当在输入字段上触发模糊事件时,如果字段不为空,则应处理数字验证,这也可以。最后,我将 id name 的字段更新为一些值。 现在我有一个问题。我的第三个请求是当输入为空时不应处理输入验证。这是特殊情况,我将清除 id name 的字段。当我删除已在输入中输入的文本、从组件中删除焦点(例如按 TAB)时,也会出现这种情况,在这种情况下,还应该处理 AJAX 请求,并且名称输入也将被清除。 如何在输入字段为空时禁用对此字段的验证,并且仅针对此 ajax 事件? 让输入的 required 属性检查是否按下了保存按钮(可以通过隐式 EL 变量 #{param} 所提供的请求参数映射中其客户端 ID 的存在来识别)。 <h:form> <p:inputText ... required="#{param.containsKey(save.clientId) and myBean.required}" /> <p:commandButton binding="#{save}" ... /> </h:form> (注意:不要将其绑定到 bean 属性!代码按原样) 这样它只会在实际按下保存按钮时评估true。 或者,如果您对 binding 有问题和/或对按钮的客户端 ID 进行硬编码没有问题: <h:form id="formId"> <p:inputText ... required="#{param.containsKey('formId:buttonId') and myBean.required}" /> <p:commandButton id="buttonId" ... /> </h:form> 如果输入为空,只需在接受输入时删除必需的属性即可。然后编写一个自定义验证器,它只接受空输入或数字输入。 <p:inputText id="input" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}" validator="customerNumericInputValidator"> <p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/> </p:inputText> public class customerNumericInputValidator implements Validator { @Override public void validate(FacesContext facesContext, UIComponent uIComponent, Object object) throws ValidatorException { String number = (String) object; number = Strings.nullToEmpty(number).trim(); //if the request is a full request then number can not be empty if(!FacesContext.getCurrentInstance().isPostback() && Strings.isNullOrEmpty(number)) { FacesMessage message = new FacesMessage(); message.setSummary(Messages.getMessage("error empty value")); message.setSeverity(FacesMessage.SEVERITY_ERROR); throw new ValidatorException(message); } if(!Strings.isNullOrEmpty(number)) { if(!isNumber(number)) { FacesMessage message = new FacesMessage(); message.setSummary(Messages.getMessage("error not numerical value")); message.setSeverity(FacesMessage.SEVERITY_ERROR); throw new ValidatorException(message); } } } }

回答 2 投票 0

如何使用setvalidity函数在html中输入字段为空时获取请填写此字段消息?

这是正确的代码,因为现在字母字符的验证工作正常,但所需的功能不起作用......它没有显示消息,请在...时填写此字段消息

回答 1 投票 0

位于非活动选项卡中的字段在提交表单时未进行验证

我在选项卡式界面中遇到表单验证问题。我使用带有单选按钮的常规选项卡在它们之间进行切换。但是,提交表单后,它无法验证本地字段...

回答 1 投票 0

Laravel 验证规则如果另一个字段值大于或等于 15

我想给出卡信息的验证规则,如果 number_of_guests 字段值大于或等于 15,则需要 $rules = [ 'number_of_guests' => '数字|必需|最大:100', '

回答 1 投票 0

动态预订表单中的必填字段

我正在创建机场接送预订表格。根据您是否需要回程接送等,您可以选择 4 个选项。 所以表单使用 JavaScript 来隐藏/显示 4 个不同的内容 p...

回答 1 投票 0

为什么当我点击不相关按钮时显示“请填写此字段”验证消息

我在页面上使用了地图,当我单击“cellSize”按钮时,会出现填充字段警告。我不想这样。如何解决这个问题? 像这样的警告: 这是我的文本字段: 我在页面上使用了地图,当我单击“cellSize”按钮时,会出现填充字段警告。我不想这样。如何解决这个问题? 这样的警告: 这是我的文本字段: <div class="form-group"> <label for="name">Name</label> <input ng-model="Name" ng-readonly="view.readonly" ng-maxlength="100" type="text" class="form-control input-sm" id="cluster-name" placeholder="Name" required> </div> 这是我的增量按钮点击: change: function () { this.trigger("spin"); $scope.cellSizeCoefficient = this.value(); $scope.$broadcast('mapCellSizeChanged', $scope.map); $.each($scope.cellShapes, function (index, cellShape) { var radius = getRadius(cellShape.Cell); cellShape.Circle.setRadius(radius); if (cellShape.Circle.label) { var labelLoc = findLocationAtDistanceFrom(cellShape.Cell.LOC, cellShape.Cell.AZ, radius); cellShape.Circle.label.setLatLng([labelLoc.Y, labelLoc.X]); } }); if (selectedCellCircle) { var radius = getRadius(selectedCellCircle.Cell) + 50; selectedCellCircle.setRadius(radius); } } 由于输入元素上的 required 属性,您会看到该消息。当单击“增量”按钮时提交 form 时会显示它。 要停止该行为,请将 type="button" 属性添加到 button: <button type="button" style="margin-left:2px;" kendo-button="btnCellSizeIncrement" k-options="btnCellSizeIncrementOptions"> <i class="fa fa-plus pi-icon pi-icon-plus"></i> </button> 仅供参考,您应该在任何您不想要在单击时提交 type="button" 的 button 元素上添加 form 属性。 如果不是必填字段,请从此 HTML 中删除 required 属性,否则浏览器将在表单提交时显示此消息。确保您在单击单元格大小按钮时没有提交表单。 <input ng-model="Name" ng-readonly="view.readonly" ng-maxlength="100" type="text" class="form-control input-sm" id="cluster-name" placeholder="Name" required> 添加 novalidate 和表单标签作为必需属性,以便触发 HTML5 验证。 <form novalidate> <div class="form-group"> <label for="name">Name</label> <input ng-model="Name" ng-readonly="view.readonly" ng-maxlength="100" type="text" class="form-control input-sm" id="cluster-name" placeholder="Name" required> </div> </form> 我有一个按钮导致了同样的行为,当我不想要它时触发表单验证。我的按钮交换了一些表单字段。解决方案很简单:我没有将按钮定义为具有 onclick 事件的输入元素,而是将其更改为具有 onclick 事件的 img 元素。该按钮作用于表单,它不是表单的一部分,我认为与您的表单相同。

回答 4 投票 0

Laravel 验证不会显示

我有一个类型为“number”的数字输入,我给它一个该等级输入的验证错误(nilai): ... 我有一个带有 type="number" 的数字输入,我为此等级输入给出了一个验证错误(nilai): <div class="col-4"> <div class="form-group"> <label>Nilai <span class="text-danger">*</span></label> <input type="number" id="grade" name="grade[]" class="form-control @error('grade') is-invalid @enderror" placeholder="Masukkan nilai" required> @if (count($errors) > 0) @error('grade') <div class="invalid-feedback">{{ $message }}</div> @enderror @else <div class="invalid-feedback">Mohon isikan nilai</div> @endif </div> </div> 这是控制器中的验证器: $request->validate( [ 'student_id' => 'required|integer', 'nis' => 'required|integer', 'class' => 'required|string', 'major' => 'required|not_in:0', 'attitude_point' => 'required|array', 'attitude_point.*' => 'integer', 'competency_point' => 'required|array', 'competency_point.*' => 'string', 'grade' => 'required|array', 'grade.*' => 'integer', 'predicate' => 'required|array', 'predicate.*' => 'string', ], [ 'student_id.required' => 'The student name field is required.', 'grade.required' => 'The grade field is required.', ] ); 问题是,其他输入工作正常: 它应该显示类似“成绩字段是必填字段”的消息。 我尝试将验证更改为'numeric'或'integer|digits_between:0,100',但不起作用。我想知道出了什么问题。 不应使用 'grade.*' => 'integer',而应使用 'grade.*' => 'required|integer' 来确保数组中的每个元素都存在并且是整数。

回答 1 投票 0

将必需的属性应用于复选框

我们可以将必需的属性应用于html多个复选框中的复选框吗?而不使用javascript或jquery 我想在没有 javascript 的情况下对 html 页面应用验证。并且还会显示警告消息。

回答 2 投票 0

如何处理 C# 中的“必需成员必须在对象初始化程序或属性构造函数中设置”错误

我有两个班级 - 州 - 校长班级和学区家属班级。 公共类状态 { 公共 int StateId { 获取;放; } 公共必需的字符串 StateName { get;放; } 公开

回答 1 投票 0

我想将必填字段符号(星号)的颜色更改为红色

我想将必填字段符号(星号)的颜色更改为红色。我正在使用 Mud-Blazor。我使用下面的代码尝试了它。这是我应用代码后的图像这是我正在使用的代码...

回答 1 投票 0

我的表单中有两个必填字段。我希望星号颜色应该是红色。目前它显示为黑色

我的表单中有两个必填字段。我希望星号颜色应为红色。目前它显示为黑色。我正在使用 Mudblazor。 我尝试了多种方式但没有得到输出。请让...

回答 1 投票 0

在 Angular 中动态更改选择字段的验证

我的 Angular 应用程序遇到问题,在提交表单后,我动态更改表单中选择字段的必需属性。 评估.component.html <...

回答 1 投票 0

`必需`属性和 EF Core

一年前,C#版本。 11、添加了所需的修饰符。因此,如果我们按要求标记属性,如下所示: 公开课点 { 公共要求 int X { get;放; } 公共要求 int Y { ge...

回答 0 投票 0

C# 解决警告编译“CS8618”的最佳方法是什么

如果我们像这样声明属性: 公开课猫 { 公共字符串名称{获取;放; } } 我们收到警告编译: CS8618 - 不可为空变量必须包含非空值 退出

回答 1 投票 0

为什么必需的属性在表单上不起作用?

我正在创建此表单,但是当我单击“创建任务”按钮时,所需的属性将被忽略。 我正在使用 innerHTML 和创建表单: 我正在创建此表单,但是当我单击“创建任务”按钮时,所需的属性将被忽略。 我正在使用innerHTML 创建表单,并且: <form id="task-form"> <label for="task-title">Title:</label> <input type="text" id="task-title" name="task-title" required> <label for="task-date">Due date:</label> <input type="date" id="task-date" name="task-date" required> <label for="task-description">Description:</label> <textarea name="task-description" id="task-description" required></textarea> <label for="checkbox">Add to a project?</label> <input type="checkbox" name="checkbox" id="checkbox"> <label for="task-priority">Priority:</label> <select name="task-priority" id="task-priority" required> <option value="Low">Low</option> <option value="Medium">Medium</option> <option value="High">High</option> </select> <button type="submit" id="create-task-btn">Create Task</button> </form>``` Also the console give me one warning saying: "Form submission canceled because the form is not connected" 因为您要动态添加创建侦听器所需的表单 // Create the form element and set its properties const form = document.createElement('form'); form.id = 'task-form'; // Create and append the form's content form.innerHTML = ` <label for="task-title">Title:</label> <input type="text" id="task-title" name="task-title" required> <label for="task-date">Due date:</label> <input type="date" id="task-date" name="task-date" required> <label for="task-description">Description:</label> <textarea name="task-description" id="task-description" required></textarea> <label for="checkbox">Add to a project?</label> <input type="checkbox" name="checkbox" id="checkbox"> <label for="task-priority">Priority:</label> <select name="task-priority" id="task-priority" required> <option value="Low">Low</option> <option value="Medium">Medium</option> <option value="High">High</option> </select> <button type="submit" id="create-task-btn">Create Task</button> `; // Append the form to the document const formContainer = document.getElementById('form-container'); formContainer.appendChild(form); // Add an event listener for form submission form.addEventListener('submit', function (event) { event.preventDefault(); // Prevent the default form submission behavior // Your form submission logic here }); <div id="form-container"></div>

回答 1 投票 0

有没有办法以角度有条件地设置所需的输入?

我想要实现的是仅在给出另一个输入时才需要组件/指令输入,例如: @Input() 名称!:字符串; @Input({ required: name!!}) surname!:string; 这是吗

回答 2 投票 0

根据需要通过 JavaScript 以模型驱动应用程序的形式定义可编辑网格内的字段

我想根据需要以与模型驱动应用程序相同的形式在多个可编辑网格中定义多个列。这背后的意义是,我们有 2 个不同的模型驱动应用程序,用于 2 个差异......

回答 2 投票 0

jsonschema 验证所需和/或有条件需要的属性

我需要验证一个始终具有 2 个属性的 json 对象: 类型 姓名 类型可以是“A”、“B”或“C”, 当类型为“A”时,属性“foo”也是必需的,并且没有其他属性可供使用...

回答 3 投票 0

playwright-test:测试是否需要输入

我需要输入登录表单: 我需要输入登录表单: <input autoComplete="email" defaultValue={email} disabled={state === 'submitting'} id="email" name="email" placeholder={t('user-authentication:email-placeholder')} required // HERE! type="email" /> 如何测试 Playwright 是否需要输入?我在 Chromium 中的本机浏览器警告是:“请填写此字段。” 有没有办法在 Playwright 中检查/断言此警告?或者另一种方法来测试是否需要输入? 我尝试使用 .fill('') 在输入中不写入任何内容,然后使用 page.keyboard.press('Enter') 按 Enter 键,但这些并没有导致出现警告。 如果消息是由浏览器显示的,而不是添加到 DOM 中的内容,那么您将很难直接在 Playwright 中测试它。 您可以检查 required 属性是否存在,并相信浏览器将显示警告。 await page.locator('input#email[required]') 还有一个约束验证您可以应用 如果该元素是必需的,并且该元素的值为空字符串,则该元素将遭受 valueMissing 的影响,并且该元素将匹配 :invalid 伪类。 await page.locator('input#email[required]:invalid') 可以但不建议测试。这是工作代码: import { expect, test} from '@playwright/test'; test('has error message presented', async ({ page }) => { await page.goto('https://q94u5.csb.app/'); const email = page.getByRole('textbox') const submit = page.getByRole('button', { name: 'Submit' }); await email.fill('x'); await submit.click(); const error = page.locator('input:invalid'); const validationMessage = await error.evaluate((element) => { const input = element as HTMLInputElement return input.validationMessage }) expect(validationMessage).toContain("Please include an '@' in the email address. 'x' is missing an '@'.") }); 在此处阅读有关内置验证的更多信息: https://www.w3.org/WAI/tutorials/forms/validation/

回答 2 投票 0

Angular Material 单选按钮组需要验证不起作用

我试图在用户单击“提交”时验证单选按钮组。文本字段和下拉列表在无效时显示红色,但单选按钮颜色在无效时不会更改。有什么建议吗?...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.