我有一个包含必填字段的HTML5表单:
<form id="my_form">
<input type="text" name="myfield1" required>
<input type="text" name="myfield2" required>
<input type="text" name="myfield3" required>
<button type="button" id="my_button">Check</button>
</form>
另外,我有以下jQuery代码:
$('#my_button').on('click', function() {
if ($('#my_form').checkValidity() == false) {
//show errors
}
});
我想强制在//show errors
行显示HTML5错误。
答案 0 :(得分:5)
如果要显示验证气泡,首先应提交表单。将button
的类型更改为submit
并收听submit
事件。
另请注意,jQuery没有checkValidity
方法,您应该首先获取原始DOM元素:
// on submit event browser will validate the form and show the bubbles
$('#my_form').on('submit', function() {
if (this.checkValidity() == false) {
return false;
}
// ...
});
答案 1 :(得分:0)
如何在表单中添加提示字段并根据错误更改其HTML值?
<强> HTML 强>
<form id="my_form">
<div id="prompt"></div>
<input type="text" name="myfield1" required>
<input type="text" name="myfield2" required>
<input type="text" name="myfield3" required>
<button type="button" id="my_button">Check</button>
</form>
<强> JS 强>
$('#my_button').on('click', function() {
if ($('#my_form').checkValidity() == false) {
$('#prompt').removeClass().addClass('error').html('your error message');
}
});
当然,您可以使用此div来提示成功和错误消息。要执行它,您可以创建适当的CSS样式,即
<强> CSS 强>
.success {
background-color:green;
}
.error {
background-color:red;
}
并根据您的需要指定合适的班级(请参阅上面的摘录)。
答案 2 :(得分:0)
只需添加一个负责错误消息的div ......
<form id="my_form">
<input type="text" name="myfield1" required>
<input type="text" name="myfield2" required>
<input type="text" name="myfield3" required>
<button type="button" id="my_button">Check</button>
</form>
<div id="errors"></div>
// JS Part
$('#my_button').on('click', function() {
if ($('#my_form').checkValidity() == false) {
//show errors in the error DIV
$("#errors").empty();
$("#errors").text("error message");
}
});
答案 3 :(得分:0)
我有一个同样的问题,当捕获on.click事件并对其进行处理时,html5气泡不会出现,例如,在html5验证后继续使用ajax。
我观察到,如果单击事件捕获中有任何代码(简单的警报),则不会显示与每个字段(气泡)相对应的html5的验证错误
旨在对现有html5进行验证(该验证不会丢失并且无法正常工作),并且验证效果不止于可以捕获click事件并继续通过javascript进行操作
HTML5要求在气泡必须出现的地方输入!
<form id='form_insertar' method="post">
<div class="modal-body">
<div class="form-group">
<label for="first_name">First Name</label>
<input type="text" id="first_name" placeholder="First Name" class="form-control" maxlength="100" required />
</div>
<div class="form-group">
<label for="last_name">Last Name</label>
<input type="text" id="last_name" placeholder="Last Name" class="form-control" required />
</div>
<div class="form-group">
<label for="email">Email Address</label>
<input type="text" id="email" placeholder="Email Address" class="form-control" required/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" id='btn_addRecord' class="btn btn-primary">Add Record</button>
</div>
</form>
没有出现的JavaScript代码: $(document).ready(function(){
$('#btn_addRecord').on("click", function(event){
//event.preventDefault();
if ($("#form_insertar")[0].checkValidity()) {
console.log('Validado el form: Inserta los datos con ajax!');
//addRecord();
return true;
}
if (!$("#form_insertar")[0].checkValidity()) {
console.log('No validado el form: Devolvemos false y no hacemos nada. (LAMENTABLEMENTE HAY ALGO DESCONOCIDO POR LO QUE NO SE MUESTRAN LOS BUBBLES o ERRORES)');
return false;
}
//alert('test');
});
});