【发布时间】:2022-10-23 16:55:33
【问题描述】:
我有一个用 html 构建的表单(名字、姓名、电子邮件......并且应该选择一个城市)。
使用javascript,我想更改css并显示一条消息,上面写着(法语)“请选择一个城市”。
我无法访问父级“class=”formData”以应用css中的样式构建。所以,我的功能暂时无法工作。
我想使用“const parent3 = document.getElementsByName("location").parentNode;”来定位“formData”,它会在 console.log “undefined 'parent'” 中返回我,而不是返回我“*
标称
</div>*" like for the previous field of the form.
谢谢您的帮助。
function validateRadio() {
const checkradio = document.querySelector("input[name='location']:checked");
const parent3 = document.getElementsByName("location").parentNode;
console.log(parent3, "parent")
if (checkradio == null){
city.focus();
parent.setAttribute("data-error", "Veuillez choisir une ville");
parent.setAttribute("data-error-visible", "true");
} else {
parent.setAttribute("data-error-visible", "false");
}
.formData[data-error]::after {
content: attr(data-error);
font-size: 0.4em;
color: #e54858;
display: block;
margin-top: 7px;
margin-bottom: 7px;
text-align: right;
line-height: 0.3;
opacity: 0;
transition: 0.3s;
}
.formData[data-error-visible="true"]::after {
opacity: 1;
}
.formData[data-error-visible="true"] .text-control {
border: 2px solid #e54858;
}
<div
class="formData">
<input
class="checkbox-input"
type="radio"
id="location1"
name="location"
value="New York"
/>
<label class="checkbox-label" for="location1">
<span class="checkbox-icon"></span>
New York</label
>
<input
class="checkbox-input"
type="radio"
id="location2"
name="location"
value="San Francisco"
/>
<label class="checkbox-label" for="location2">
<span class="checkbox-icon"></span>
San Francisco</label
>
<input
class="checkbox-input"
type="radio"
id="location3"
name="location"
value="Seattle"
/>
<label class="checkbox-label" for="location3">
<span class="checkbox-icon"></span>
Seattle</label
>
<input
class="checkbox-input"
type="radio"
id="location4"
name="location"
value="Chicago"
/>
<label class="checkbox-label" for="location4">
<span class="checkbox-icon"></span>
Chicago</label
>
<input
class="checkbox-input"
type="radio"
id="location5"
name="location"
value="Boston"
/>
<label class="checkbox-label" for="location5">
<span class="checkbox-icon"></span>
Boston</label
>
<input
class="checkbox-input"
type="radio"
id="location6"
name="location"
value="Portland"
/>
<label class="checkbox-label" for="location6">
<span class="checkbox-icon"></span>
Portland</label
>
<br><small></small>
</div>
【问题讨论】:
标签: javascript html css dom