Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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表单验证中的必需属性只对表单中的一个按钮有效? 全名 请输入您的姓名 电子邮件 请输入您的电子邮件 城市 请进入你的城市 地址 请输入您的地址 设置为默认地址 取消 寄到这个地址_Javascript_Html - Fatal编程技术网

为什么javascript表单验证中的必需属性只对表单中的一个按钮有效? 全名 请输入您的姓名 电子邮件 请输入您的电子邮件 城市 请进入你的城市 地址 请输入您的地址 设置为默认地址 取消 寄到这个地址

为什么javascript表单验证中的必需属性只对表单中的一个按钮有效? 全名 请输入您的姓名 电子邮件 请输入您的电子邮件 城市 请进入你的城市 地址 请输入您的地址 设置为默认地址 取消 寄到这个地址,javascript,html,Javascript,Html,我不知道为什么我的代码表现得很奇怪,必需的属性在cancel按钮上起作用,但在我按下submit按钮时没有验证表单。然而,当我注释掉cancel按钮时,submit按钮实际上起作用了。我目前有一个submit按钮的事件监听器,它在单击时会通过POST请求发送表单数据,我不知道这是否是问题所在,默认情况下按钮类型是submit,因为cancel按钮没有定义类型,因此它将作为submit工作。添加按钮类型按钮以取消按钮 <form class="address-form"

我不知道为什么我的代码表现得很奇怪,必需的属性在cancel按钮上起作用,但在我按下submit按钮时没有验证表单。然而,当我注释掉cancel按钮时,submit按钮实际上起作用了。我目前有一个submit按钮的事件监听器,它在单击时会通过POST请求发送表单数据,我不知道这是否是问题所在,默认情况下按钮类型是submit,因为cancel按钮没有定义类型,因此它将作为submit工作。添加按钮类型按钮以取消按钮

<form class="address-form" id="form" name="addressForm">
            <div class="form-container">
                <div class="form-input abc">
                    <label>Full name</label>
                    <input class="form-input-name" type="text" name="full_name" placeholder="Enter your full name" maxlength="50" value="{{ customer.name }}" required>
                    <div class="input-error hidden" id="input-error-name">Please enter your name</div>
                </div>
                <div class="form-input abc">
                    <label>Email</label>
                    <input class="form-input-email" type="email" name="email" placeholder="Enter your email" maxlength="50" value="{{ customer.email }}" required>
                    <div class="input-error hidden" id="input-error-email">Please enter your email</div>
                </div>
                <div class="form-input abc">
                    <label>City</label>
                    <input class="form-input-city" type="text" name="city" placeholder="Enter your city" maxlength="50" required>
                    <div class="input-error hidden" id="input-error-city">Please enter your city</div>
                </div>
                <div class="form-input abc">
                    <label>Address</label>
                    <textarea name="address" class="form-input-address" placeholder="For example: 92 Nguyen Huu Canh street" required></textarea>
                    <div class="input-error hidden" id="input-error-address">Please enter your address</div>
                </div>
                <div class="form-check abc">
                    <label></label>
                    <input class="tickbox" type="checkbox" onclick="checkTickbox()" id="flexCheckDefault" style="cursor: pointer" name="default">
                    <label class="form-check-label" for="flexCheckDefault" style="cursor: pointer; font-weight: 500; font-size: 12px">
                      Set as default address
                    </label>
                </div>
                <div class="buttons-container abc">
                    <label></label>
                    <div class="button-group">
                        <button class="cancel-button btn btn-light" id="cancel" formnovalidate>Cancel</button>
                        <button type="submit" class="create-update-button btn btn-primary" id="create-update">Ship to this address</button>
                    </div>
                </div>
            </div>
        </form>
取消

所需属性仅适用于以下类型:文本、搜索、url、电话、电子邮件、密码、日期选择器、号码、复选框、收音机和文件。因此,您应该在此处指定类型:

<button type = 'button' class="cancel-button btn btn-light" id="cancel">Cancel</button>


谢谢。我已经试过了,但它不再在“取消”按钮上进行验证,但“提交”按钮仍然无法验证表单。我不知道这是否正确,因为当我注释掉“取消”按钮时,textarea validation中的必需属性工作得非常好,所以我认为这不是问题所在这里是[链接](不是js问题,我复制了你的表单,它对我有效,但require在html中一个接一个地工作,因此如果第一个输入为空,它将只在表单上工作,并在那里显示消息..尝试逐个填充表单,每次按下按钮。你将看到所需内容对所有表单都有效。如果你想显示错误或其他内容,请使用JSY我发现了这个问题,我为button clicked添加了一个事件监听器,而不是submit事件
<textarea name="address" class="form-input-address" placeholder="For example: 92 
       Nguyen Huu Canh street" required>
</textarea>