我是java脚本的新手。 我想验证带有复选框类型的输入。 我使用下面的代码进行验证。
<form onsubmit="return checkForm(this);">
<input type="checkbox" name="terms" value="accept" id="accept" />
</form>
&#13;
function checkForm(form) {
alert('hello');
if (form.terms!=check) {
alert("Please indicate that you accept the Terms and Conditions");
form.terms.focus();
return false;
}
return true;
}
&#13;
<form name="form1" id="form1" runat="server" onsubmit="return checkForm(this);">
<input class="farsi-font" type="checkbox" name="terms" value="accept" id="accept" style="color: #000" runat="server" />
</form>
&#13;
然而我会收到警报(&#34;请表明您接受条款和条件&#34;);&#34;表单将发布到数据库。验证只是警告用户,并没有阻止表单post.any身体可以帮助我吗? 谢谢
答案 0 :(得分:0)
不确定该代码的来源,但这是我的工作方式:
<input type="checkbox" name="terms" value="accept" id="accept" required />
请注意添加必需属性。
document.querySelector('#accept').setCustomValidity('Please accept the terms and conditions');
现在,当用户提交表单时,如果未选中此框,则会显示您的消息,表单将不会提交。您可以通过在提交处理程序中放置console.log
或debugger
语句来测试:
// Note that as I said in the comments, attaching the handler
// this way is preferable to using the onsubmit HTML attribute.
document.querySelector('#form1').addEventListener('submit', function(evt) {
console.log('stop the presses!');
});
答案 1 :(得分:0)
试试这个:
HTML
<form onsubmit="return checkForm(event, this);">
<input type="checkbox" name="terms" id="accept" />
</form>
JS
function checkForm(event, form) {
event.preventDefault();
if (!form.terms.checked) {
alert("Please indicate that you accept the Terms and Conditions");
return false;
}
return true;
}
修改强>
要仅使用html提交表单,您可以使用以下方法。
在表单中输入
<form onsubmit="return checkForm(event, this);">
<input type="checkbox" name="terms" id="accept" />
<input type="submit" value="Submit the form" />
</form>
外面有一个按钮。 (现在表单必须有id)
<form id="myForm" onsubmit="return checkForm(event, this);">
<input type="checkbox" name="terms" id="accept" />
</form>
<button type="submit" form="myForm">Submit the form</button>