У меня возникли некоторые проблемы, препятствующие отправке формы по приведенному ниже коду. Форма имеет динамические входы. Их нет, но они добавлены, но пользователи позже. Этот код не отображает весь код динамического поля, но в массивах будет 5 или 6 полей, таких как type [].JQuery prevent form submit
Что я хотел бы сделать, так это предотвратить подачу формы до тех пор, пока не будет добавлен, по крайней мере, 1 набор динамических входов и не будет проверен. Код еще не подтвержден.
Я пробовал образцы кода ниже, но он, похоже, не работает, когда я нажимаю submit без динамических полей, он по-прежнему сбрасывает все входы.
submitHandler: function(form) {
form.submit(function(event) {
event.preventDefault();
});
}
submitHandler: function(form) {
form.submit(function() {
return false();
});
}
если нет динамических полей я хотел бы, чтобы отобразить сообщение об ошибке, говоря им, чтобы завершить по крайней мере 1 до формы могут быть представлены.
В JQuery x указано количество полей, которые были созданы, так что я думал, что можно использовать для предотвращения отправки формы.
Заранее спасибо.
HTML:
<div class="container">
<h1>AWS CI Reservation</h1>
<div class="row">
<div class="col-md-6 pull-right">
<p><strong>Instructions:</strong></p>
<div class="well well-sm">...</div>
</div>
<div class="col-md-6">
<form role="form" id="aws-res-ci" method="POST">
<div class="form-group">
<label for="reqName">Requester's Name:</label>
<input type="text" class="form-control" id="reqName" name="reqName" placeholder="Enter Requester's Name">
</div>
<div class="form-group">
<label for="reqEmail">Requester's Email:</label>
<input type="text" class="form-control" id="reqEmail" name="reqEmail" placeholder="Enter Requester's Email">
</div>
<div class="form-group">
<label for="projectNum">Project #: <span style="color:grey;font-size:70%">(if known)</span></label>
<input type="text" class="form-control" id="projectNum" placeholder="Enter Project #">
</div>
<div class="form-group">
<label for="projectContact">Project Contact:</label>
<input type="text" class="form-control" id="projectContact" name="projectContact" placeholder="Enter Project Contact">
</div>
<div class="form-group">
<label for="location">Location:</label>
<select class="form-control" name="location" id="location">
<option value="">Please choose...</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="form-group">
<label for="bu">Business Unit requested for:</label>
<select class="form-control" name="bu" id="bu">
<option value="">Please choose...</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
</div>
</div>
<hr>
<div id="no-ci"></div>
<div class="input_fields_wrap">
<!-- Start dynamic fields -->
<!-- End dynamic fields -->
</div>
<br>
<br>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Add EC2 Instances <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" id="add_ec2_instance">Add EC2 Instance</a></li>
<li><a href="#" id="add_ec2_instance">Add EC2 Auto Scaling Instance</a></li>
</ul>
</div>
<span class="pull-right"> </span>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Add Database <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" id="add_rds_instance">Add RDS Instance</a></li>
<li><a href="#" id="add_elastic_cache_instance">Add Elastic Cache Instance</a></li>
<li><a href="#" id="add_redshift">Add Redshift Istance</a></li>
</ul>
</div>
<span class="pull-right"> </span>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Add Storage <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" id="add_s3">Add S3 Instance</a></li>
<li><a href="#" id="add_glacier">Add Glacier Instance</a></li>
</ul>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Jquery:
(function($,W,D)
{
var JQUERY4U = {};
JQUERY4U.UTIL =
{
setupFormValidation: function()
{
//form validation rules
$("#aws-res-ci").validate({
rules: {
reqName: "required",
reqEmail: {
required: true,
email: true
},
projectContact: {
required: true
},
location: "required",
bu: "required",
ci-count: {
required: true,
min: 1
}
},
messages: {
firstname: "Please enter your firstname",
lastname: "Please enter your lastname",
password: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long"
},
},
submitHandler: function(form) {
form.submit();
}
});
}
}
//when the dom has loaded setup form validation rules
$(D).ready(function($) {
JQUERY4U.UTIL.setupFormValidation();
});
//setting up funcations
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_ec2 = $("#add_ec2_instance"); //Add button ID
var x = 0; //initlal text box count
//EC2 Instance
$(add_ec2).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper).append('<div><input type="text" name="mytext[]"/> \
<a href="#" class="remove_field">Remove</a></div>'); //add input box
}
});
//remove item when told
$(wrapper).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
});
})(jQuery, window, document);