我有一些表单字段,根据用户与网页的交互方式填充javascript。
<input type="hidden" class="evaluation_answer" required name="evaluation_1"/>
<div class="options">
<div class="option">
<i class="fa fa-star-o fa-2x"></i>
</div>
<div class="option">
<i class="fa fa-star-o fa-2x"></i>
</div>
<div class="option">
<i class="fa fa-star-o fa-2x"></i>
</div>
<div class="option">
<i class="fa fa-star-o fa-2x"></i>
</div>
</div>
此字段的值将填充一些javascript。
var stars = document.getElementsByClassName("fa-star-o");
for(var i = 0; i < stars.length; i++) {
stars[i].addEventListener("click", function(){
console.log("empty star clicked...");
var sib = this.parentNode.parentNode;
sib = sib.getElementsByTagName("i");
console.log(sib);
for(var u = 0; u < sib.length; u++) {
sib[u].classList.remove("fa-star");
sib[u].classList.add("fa-star-o");
sib[u].style.color = "#444";
}
this.classList.remove("fa-star-o");
this.classList.add("fa-star");
for(var u = 0; u < sib.length; u++) {
if(sib[u].classList.contains("fa-star")) {
var index = u;
break;
}
}
var hidden_input = this.parentNode.parentNode.parentNode;
hidden_input = hidden_input.getElementsByClassName("evaluation_answer");
hidden_input[0].value = index + 1;
这为隐藏的输入字段提供了一个值,取决于它们在页面上点击的内容的索引(不重要),但是,如果他们没有点击任何内容并且仍然希望提交表单,则此字段将具有没有价值集。我已经尝试将所需的标记添加到此隐藏的输入字段,但验证弹出/警报(chrome)未显示。
有没有办法显示这些必需的验证消息?
tl; dr:在Chrome中,任何未提供值的必填字段都会提醒用户提交时需要该字段,如果将字段设置为隐藏,则不会显示此验证。任何修复?/解决方法?我知道这是按预期工作的,但我更喜欢验证消息。