Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否在React Hook表单中验证以确保至少选中一个复选框?_Javascript_Reactjs_Validation_Checkbox_React Hook Form - Fatal编程技术网

Javascript 是否在React Hook表单中验证以确保至少选中一个复选框?

Javascript 是否在React Hook表单中验证以确保至少选中一个复选框?,javascript,reactjs,validation,checkbox,react-hook-form,Javascript,Reactjs,Validation,Checkbox,React Hook Form,我正在制作一个表单,其中有一个部分需要至少选中一个复选框。我正在使用ReactJS和ReactHook表单 以下是myrender函数中代码的复选框部分: {/* Checkbox group. User must select at least one medium. */} <label><b>Medium (check all that apply): *</b></label> <div> <label> &l

我正在制作一个表单,其中有一个部分需要至少选中一个复选框。我正在使用ReactJS和ReactHook表单

以下是my
render
函数中代码的复选框部分:

{/* Checkbox group. User must select at least one medium. */}
<label><b>Medium (check all that apply): *</b></label>
<div>
 <label>
  <input type="checkbox" name="medium" value="Design & Illustration" onChange="validateMedium();"/><span>Design & Illustration</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Digital Art" onChange="validateMedium();"/><span>Digital Art</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Drawing" onChange="validateMedium();"/><span>Drawing</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Painting & Mixed Media" onChange="validateMedium();"/><span>Painting & Mixed Media</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Photography" onChange="validateMedium();"/><span>Photography</span>
 </label>
</div>
  ref={register({
    required: false,
    validate: validateMedium })}
{/*复选框组。用户必须至少选择一个媒体。*/}
中等(勾选所有适用项):*
设计与插图
数字艺术
绘画
绘画与混合媒介
摄影
以下是我试图编写的验证复选框组的函数:

function validateMedium() {
    var mediumCheckboxes = document.getElementsByName("medium");
    var okay = false;

    for (var i = 0, len = mediumCheckboxes.length; i < len; i++) {
        if (mediumCheckboxes[i].checked) {
            okay = true;
            break;
        }
    }

    if (okay) {
        alert("Thank you");
    } else {
        alert("Please check at least one medium.");
    }
}
函数validateMedium(){
var mediumcheckbox=document.getElementsByName(“medium”);
var-ok=false;
对于(变量i=0,len=mediumcheckbox.length;i

如何集成专门为此表单上的复选框组编写的验证函数?如果用户在单击submit按钮时没有选中至少一个复选框,我希望出现错误。我不想使用jQuery。

每个输入都应该有一个
ref
prop,它将注册验证功能:

{/* Checkbox group. User must select at least one medium. */}
<label><b>Medium (check all that apply): *</b></label>
<div>
 <label>
  <input type="checkbox" name="medium" value="Design & Illustration" onChange="validateMedium();"/><span>Design & Illustration</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Digital Art" onChange="validateMedium();"/><span>Digital Art</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Drawing" onChange="validateMedium();"/><span>Drawing</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Painting & Mixed Media" onChange="validateMedium();"/><span>Painting & Mixed Media</span>
 </label>
</div>
<div>
 <label>
  <input type="checkbox" name="medium" value="Photography" onChange="validateMedium();"/><span>Photography</span>
 </label>
</div>
  ref={register({
    required: false,
    validate: validateMedium })}

查看react中的受控组件