find().each() 没有找到任何东西
find().each() not finding anything
我有这个表格:
<form method="post" action="#" data-action="ajax.php?method=create" class="form-horizontal" role="form">
<div class="form-group">
<label class="col-md-2 control-label">Name</label>
<div class="col-md-8">
<input name="name" type="text" value="" class="form-control" required>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Location</label>
<div class="col-md-8">
<input name="location" type="text" value="" class="form-control" required>
</div>
</div>
</form>
我想对此表单执行一些基本验证。但是,我的 find().each() 代码根本不起作用。
代码如下:
$(document).on('submit', '[data-action]', function (event) {
event.preventDefault();
var form = $(this);
// ensure required fields are filled in
form.find('[required]').each(function() {
alert('required field found');
});
});
我没有收到任何提醒,即使表单显然有 2 个必填项。
为什么会这样?
您需要在表单标签内添加提交按钮。完成后,您的 JQuery 就可以使用了。
这是一个link到一个Fiddle Demo
HTML
<form method="post" action="#" data-action="ajax.php?method=create" class="form-horizontal" role="form">
<div class="form-group">
<label class="col-md-2 control-label">Name</label>
<div class="col-md-8">
<input name="name" type="text" value="" class="form-control" required>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Location</label>
<div class="col-md-8">
<input name="location" type="text" value="" class="form-control" required>
</div>
</div>
<input type="submit" value="submit">
</form>
JQUERY
$(document).on('submit', '[data-action]', function (event) {
event.preventDefault();
var form = $(this);
console.log($(this));
// ensure required fields are filled in
form.find('[required]').each(function() {
console.log('required field found');
});
});
Chrome 内置浏览器验证阻止我的代码执行。在我的表单中添加 novalidate
解决了这个问题。
我有这个表格:
<form method="post" action="#" data-action="ajax.php?method=create" class="form-horizontal" role="form">
<div class="form-group">
<label class="col-md-2 control-label">Name</label>
<div class="col-md-8">
<input name="name" type="text" value="" class="form-control" required>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Location</label>
<div class="col-md-8">
<input name="location" type="text" value="" class="form-control" required>
</div>
</div>
</form>
我想对此表单执行一些基本验证。但是,我的 find().each() 代码根本不起作用。
代码如下:
$(document).on('submit', '[data-action]', function (event) {
event.preventDefault();
var form = $(this);
// ensure required fields are filled in
form.find('[required]').each(function() {
alert('required field found');
});
});
我没有收到任何提醒,即使表单显然有 2 个必填项。
为什么会这样?
您需要在表单标签内添加提交按钮。完成后,您的 JQuery 就可以使用了。
这是一个link到一个Fiddle Demo
HTML
<form method="post" action="#" data-action="ajax.php?method=create" class="form-horizontal" role="form">
<div class="form-group">
<label class="col-md-2 control-label">Name</label>
<div class="col-md-8">
<input name="name" type="text" value="" class="form-control" required>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Location</label>
<div class="col-md-8">
<input name="location" type="text" value="" class="form-control" required>
</div>
</div>
<input type="submit" value="submit">
</form>
JQUERY
$(document).on('submit', '[data-action]', function (event) {
event.preventDefault();
var form = $(this);
console.log($(this));
// ensure required fields are filled in
form.find('[required]').each(function() {
console.log('required field found');
});
});
Chrome 内置浏览器验证阻止我的代码执行。在我的表单中添加 novalidate
解决了这个问题。