現在、ページに2つのフォーム、更新フォームと追加フォームがあります。どちらかのフォームを送信し、そのフォームのIDをアクションとともにプルし、特定のフォームを検証してから、リターンをロードします。 Webサーバーから。
特に各フォームのIDを使用して機能させることができましたが、jsコードは2回繰り返され、idはもう少し動的であることが望ましいです。
<script src="assets/js/jquery-1.8.2.js"></script>
<script src="assets/js/bootstrap.js"></script>
<script src="assets/js/jquery.validate.js"></script>
<div id="myTabContent" class="tab-content">
<div class="tab-pane active" id="update">
<form action="php/update_level.php" method="post" id="form1">
<h2>Update Level</h2>
<label>Select Bag Level</label>
<select id="target" name="levelSelect"> <option selected>Select</option>
<?php
foreach($result as $row)
{?>
<option><?php echo $row['Level'] ?></option>
<?php
}
?>
</select>
<div id="upForm">
</div>
<div class="message">
</div>
</form>
</div>
<div class="tab-pane" id="addNew">
<form action="php/add_level.php" id="form2">
<h2>New Level</h2>
<label>Level</label>
<input class="required" maxlength="10" minlenght="1" type="text" name="level" placeholder="Level">
<label>Description</label>
<textarea class="required" name="description" rows="3" placeholder="Description of level type"></textarea>
</br>
<div class="message">
</div>
<div class="form-actions">
<button id="inFormSub" type="submit" class="btn btn-large btn-primary">Submit</button>
</div>
</form>
</div>
</div>
JS:
$('form').submit(function(e){
e.preventDefault();
var id=$(this).attr('id');
var action=$(this).attr('action');
console.log(action + ' ' + id); //works outputs update_bag.php form1 on submit of form1
//add_bag.php form2 on submit of form2
$(id).validate({
submitHandler: function() {
console.log(action + ' ' + id); //doesnt work
$(id).find('div.message').load(action, $(id).serializeArray());
}
});
動作するJS
$('#form1').validate({
submitHandler: function() {
var action = $('#form1').attr('action');
console.log(action + ' validate1');
$('#form2').find('div.message').load(action, $('#form1').serializeArray());
}
});
$('#form2').validate({
submitHandler: function() {
var action = $('#form2').attr('action');
console.log(action + ' validate2');
$('#form2').find('div.message').load(action, $('#form2').serializeArray());
}
});
JSとJqueryに関する私の知識はせいぜい少なく、おそらく解決策を真正面から見つめています。